Skip to content
Snippets Groups Projects
Commit c2a9df3a authored by Will McCutchen's avatar Will McCutchen
Browse files

Add /digest-auth/:qop/:user/:pass stub

parent ef7fd18e
No related branches found
No related tags found
No related merge requests found
...@@ -336,3 +336,15 @@ func (h *HTTPBin) HiddenBasicAuth(w http.ResponseWriter, r *http.Request) { ...@@ -336,3 +336,15 @@ func (h *HTTPBin) HiddenBasicAuth(w http.ResponseWriter, r *http.Request) {
}) })
writeJSON(w, body, http.StatusOK) writeJSON(w, body, http.StatusOK)
} }
// DigestAuth is not yet implemented, and returns 501 Not Implemented. It
// appears that stdlib support for working with digest authentication is
// lacking, and I'm not yet ready to implement it myself.
func (h *HTTPBin) DigestAuth(w http.ResponseWriter, r *http.Request) {
parts := strings.Split(r.URL.Path, "/")
if len(parts) != 5 {
http.Error(w, "Not Found", http.StatusNotFound)
return
}
http.Error(w, "Not Implemented", http.StatusNotImplemented)
}
...@@ -1056,3 +1056,24 @@ func TestHiddenBasicAuth(t *testing.T) { ...@@ -1056,3 +1056,24 @@ func TestHiddenBasicAuth(t *testing.T) {
}) })
} }
} }
func TestDigestAuth(t *testing.T) {
var tests = []struct {
url string
status int
}{
{"/digest-auth/qop/user/pass", http.StatusNotImplemented},
{"/digest-auth", http.StatusNotFound},
{"/digest-auth/user", http.StatusNotFound},
{"/digest-auth/user/pass", http.StatusNotFound},
{"/digest-auth/qop/user/pass/foo", http.StatusNotFound},
}
for _, test := range tests {
t.Run("ok"+test.url, func(t *testing.T) {
r, _ := http.NewRequest("GET", test.url, nil)
w := httptest.NewRecorder()
handler.ServeHTTP(w, r)
assertStatusCode(t, w, test.status)
})
}
}
...@@ -86,12 +86,14 @@ func (h *HTTPBin) Handler() http.Handler { ...@@ -86,12 +86,14 @@ func (h *HTTPBin) Handler() http.Handler {
mux.HandleFunc("/basic-auth/", h.BasicAuth) mux.HandleFunc("/basic-auth/", h.BasicAuth)
mux.HandleFunc("/hidden-basic-auth/", h.HiddenBasicAuth) mux.HandleFunc("/hidden-basic-auth/", h.HiddenBasicAuth)
mux.HandleFunc("/digest-auth/", h.DigestAuth)
// Make sure our ServeMux doesn't "helpfully" redirect these invalid // Make sure our ServeMux doesn't "helpfully" redirect these invalid
// endpoints by adding a trailing slash. See the ServeMux docs for more // endpoints by adding a trailing slash. See the ServeMux docs for more
// info: https://golang.org/pkg/net/http/#ServeMux // info: https://golang.org/pkg/net/http/#ServeMux
mux.HandleFunc("/absolute-redirect", http.NotFound) mux.HandleFunc("/absolute-redirect", http.NotFound)
mux.HandleFunc("/basic-auth", http.NotFound) mux.HandleFunc("/basic-auth", http.NotFound)
mux.HandleFunc("/digest-auth", http.NotFound)
mux.HandleFunc("/hidden-basic-auth", http.NotFound) mux.HandleFunc("/hidden-basic-auth", http.NotFound)
mux.HandleFunc("/redirect", http.NotFound) mux.HandleFunc("/redirect", http.NotFound)
mux.HandleFunc("/relative-redirect", http.NotFound) mux.HandleFunc("/relative-redirect", http.NotFound)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment