improve auth tests and rename auth struct
This commit is contained in:
parent
aa7dad3a03
commit
3c9e260926
6
auth.go
6
auth.go
@ -24,7 +24,7 @@ type AuthOptions struct {
|
|||||||
UnauthMethods []string
|
UnauthMethods []string
|
||||||
}
|
}
|
||||||
|
|
||||||
type uploadBasicAuth struct {
|
type auth struct {
|
||||||
successHandler http.Handler
|
successHandler http.Handler
|
||||||
failureHandler http.Handler
|
failureHandler http.Handler
|
||||||
o AuthOptions
|
o AuthOptions
|
||||||
@ -56,7 +56,7 @@ func checkAuth(authFile string, decodedAuth []byte) (result bool, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a uploadBasicAuth) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (a auth) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
if sliceContains(a.o.UnauthMethods, r.Method) {
|
if sliceContains(a.o.UnauthMethods, r.Method) {
|
||||||
// allow unauthenticated methods
|
// allow unauthenticated methods
|
||||||
a.successHandler.ServeHTTP(w, r)
|
a.successHandler.ServeHTTP(w, r)
|
||||||
@ -86,7 +86,7 @@ func (a uploadBasicAuth) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func UploadAuth(o AuthOptions) func(http.Handler) http.Handler {
|
func UploadAuth(o AuthOptions) func(http.Handler) http.Handler {
|
||||||
fn := func(h http.Handler) http.Handler {
|
fn := func(h http.Handler) http.Handler {
|
||||||
return uploadBasicAuth{
|
return auth{
|
||||||
successHandler: h,
|
successHandler: h,
|
||||||
failureHandler: http.HandlerFunc(badAuthorizationHandler),
|
failureHandler: http.HandlerFunc(badAuthorizationHandler),
|
||||||
o: o,
|
o: o,
|
||||||
|
@ -52,13 +52,20 @@ func TestIndex(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestIndexAuthKeys(t *testing.T) {
|
func TestAuthKeysRedirects(t *testing.T) {
|
||||||
Config.authFile = "/dev/null"
|
Config.authFile = "/dev/null"
|
||||||
|
|
||||||
|
redirects := []string{
|
||||||
|
"/",
|
||||||
|
"/paste/",
|
||||||
|
}
|
||||||
|
|
||||||
mux := setup()
|
mux := setup()
|
||||||
|
|
||||||
|
for _, v := range redirects {
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", "/", nil)
|
req, err := http.NewRequest("GET", v, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -66,7 +73,8 @@ func TestIndexAuthKeys(t *testing.T) {
|
|||||||
mux.ServeHTTP(w, req)
|
mux.ServeHTTP(w, req)
|
||||||
|
|
||||||
if w.Code != 303 {
|
if w.Code != 303 {
|
||||||
t.Fatalf("Status code is not 301, but %d", w.Code)
|
t.Fatalf("Status code is not 303, but %d", w.Code)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Config.authFile = ""
|
Config.authFile = ""
|
||||||
|
Loading…
Reference in New Issue
Block a user