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

Use generic notImplementedHandler for /digest-auth

parent 729c7706
No related branches found
No related tags found
No related merge requests found
...@@ -21,6 +21,10 @@ var acceptedMediaTypes = []string{ ...@@ -21,6 +21,10 @@ var acceptedMediaTypes = []string{
"image/", "image/",
} }
func notImplementedHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "Not implemented", http.StatusNotImplemented)
}
// Index renders an HTML index page // Index renders an HTML index page
func (h *HTTPBin) Index(w http.ResponseWriter, r *http.Request) { func (h *HTTPBin) Index(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/" { if r.URL.Path != "/" {
...@@ -383,18 +387,6 @@ func (h *HTTPBin) HiddenBasicAuth(w http.ResponseWriter, r *http.Request) { ...@@ -383,18 +387,6 @@ 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)
}
// Stream responds with max(n, 100) lines of JSON-encoded request data. // Stream responds with max(n, 100) lines of JSON-encoded request data.
func (h *HTTPBin) Stream(w http.ResponseWriter, r *http.Request) { func (h *HTTPBin) Stream(w http.ResponseWriter, r *http.Request) {
parts := strings.Split(r.URL.Path, "/") parts := strings.Split(r.URL.Path, "/")
......
...@@ -1075,11 +1075,11 @@ func TestDigestAuth(t *testing.T) { ...@@ -1075,11 +1075,11 @@ func TestDigestAuth(t *testing.T) {
url string url string
status int status int
}{ }{
{"/digest-auth/qop/user/pass", http.StatusNotImplemented},
{"/digest-auth", http.StatusNotFound}, {"/digest-auth", http.StatusNotFound},
{"/digest-auth/user", http.StatusNotFound}, {"/digest-auth/qop/user/pass", http.StatusNotImplemented},
{"/digest-auth/user/pass", http.StatusNotFound}, {"/digest-auth/user", http.StatusNotImplemented},
{"/digest-auth/qop/user/pass/foo", http.StatusNotFound}, {"/digest-auth/user/pass", http.StatusNotImplemented},
{"/digest-auth/qop/user/pass/foo", http.StatusNotImplemented},
} }
for _, test := range tests { for _, test := range tests {
t.Run("ok"+test.url, func(t *testing.T) { t.Run("ok"+test.url, func(t *testing.T) {
......
...@@ -112,7 +112,6 @@ func (h *HTTPBin) Handler() http.Handler { ...@@ -112,7 +112,6 @@ 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)
mux.HandleFunc("/deflate", h.Deflate) mux.HandleFunc("/deflate", h.Deflate)
mux.HandleFunc("/gzip", h.Gzip) mux.HandleFunc("/gzip", h.Gzip)
...@@ -139,6 +138,9 @@ func (h *HTTPBin) Handler() http.Handler { ...@@ -139,6 +138,9 @@ func (h *HTTPBin) Handler() http.Handler {
mux.HandleFunc("/image/", h.Image) mux.HandleFunc("/image/", h.Image)
mux.HandleFunc("/xml", h.XML) mux.HandleFunc("/xml", h.XML)
// Not implemented
mux.HandleFunc("/digest-auth/", notImplementedHandler)
// 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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment