feat: check for basic auth (#110) (#129)

This commit is contained in:
Janis Jansons
2024-02-27 19:16:08 +02:00
committed by GitHub
parent e7b17e6058
commit 871c54f35f

View File

@@ -17,6 +17,17 @@ const UserContextKey contextKey = "user"
func RequireAuthentication(h http.Handler, auth *Authenticator) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
username, password, usesBasicAuth := r.BasicAuth()
if usesBasicAuth {
user, err := auth.Login(username, password)
if err == nil {
ctx := context.WithValue(r.Context(), UserContextKey, user)
h.ServeHTTP(w, r.WithContext(ctx))
return
}
}
token, err := ParseBearerToken(r.Header.Get("Authorization"))
if err != nil {
http.Error(w, "Unauthorized (No Authorization Header)", http.StatusUnauthorized)