18 lines
511 B
Go
18 lines
511 B
Go
package handlers
|
|
|
|
import "net/http"
|
|
|
|
func (hs *Handlers) basicAuth(next http.Handler) http.Handler {
|
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
username, password, ok := r.BasicAuth()
|
|
if !ok || username != hs.cfg.GetUsername() || password != hs.cfg.GetPassword() {
|
|
w.Header().Set("WWW-Authenticate", `Basic realm="restricted"`)
|
|
w.WriteHeader(http.StatusUnauthorized)
|
|
w.Write([]byte(http.StatusText(http.StatusUnauthorized)))
|
|
return
|
|
}
|
|
|
|
next.ServeHTTP(w, r)
|
|
})
|
|
}
|