Merge pull request #7404 from nikhiljindal/handleIndex

Updating handleIndex to return 404 for invalid server URL
This commit is contained in:
Fabio Yeon 2015-04-28 15:51:04 -07:00
commit 45f85dbf06
2 changed files with 8 additions and 1 deletions

View File

@ -27,6 +27,12 @@ import (
func IndexHandler(container *restful.Container, muxHelper *MuxHelper) func(http.ResponseWriter, *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
status := http.StatusOK
if r.URL.Path != "/" && r.URL.Path != "/index.html" {
// Since "/" matches all paths, handleIndex is called for all paths for which there is no handler registered.
// We want to to return a 404 status with a list of all valid paths, incase of an invalid URL request.
status = http.StatusNotFound
}
var handledPaths []string
// Extract the paths handled using restful.WebService
for _, ws := range container.RegisteredWebServices() {
@ -35,6 +41,6 @@ func IndexHandler(container *restful.Container, muxHelper *MuxHelper) func(http.
// Extract the paths handled using mux handler.
handledPaths = append(handledPaths, muxHelper.RegisteredPaths...)
sort.Strings(handledPaths)
writeRawJSON(http.StatusOK, api.RootPaths{Paths: handledPaths}, w)
writeRawJSON(status, api.RootPaths{Paths: handledPaths}, w)
}
}

View File

@ -363,6 +363,7 @@ func getTestRequests() []struct {
{"GET", "/api", "", code200},
{"GET", "/healthz", "", code200},
{"GET", "/version", "", code200},
{"GET", "/invalidURL", "", code404},
}
return requests
}