http: Add mechanism to forbid certain files/directories
This commit is contained in:
parent
11e8e7460a
commit
7480742e9e
@ -23,6 +23,7 @@ type Handler struct {
|
||||
Index []string
|
||||
ErrorDocument string
|
||||
DirectoryDocument string
|
||||
DenyAll ucontainer.Set[string]
|
||||
}
|
||||
|
||||
func (this *Handler) ServeHTTP (res http.ResponseWriter, req *http.Request) {
|
||||
@ -43,8 +44,15 @@ func (this *Handler) ServeHTTP (res http.ResponseWriter, req *http.Request) {
|
||||
}
|
||||
hasTrailingSlash := strings.HasSuffix(pat, "/")
|
||||
pat = path.Clean(req.URL.Path)
|
||||
name := pathToName(pat)
|
||||
|
||||
info, err := statFile(filesystem, pathToName(pat))
|
||||
// access control
|
||||
if this.DenyAll.Has(name) {
|
||||
this.serveError(res, req, http.StatusForbidden, req.URL, false)
|
||||
return
|
||||
}
|
||||
|
||||
info, err := statFile(filesystem, name)
|
||||
if err != nil {
|
||||
this.serveError(res, req, http.StatusNotFound, req.URL, false)
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user