github.com/weaveworks/common@v0.0.0-20230728070032-dd9e68f319d5/middleware/http_auth.go (about)

     1  package middleware
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/weaveworks/common/user"
     7  )
     8  
     9  // AuthenticateUser propagates the user ID from HTTP headers back to the request's context.
    10  var AuthenticateUser = Func(func(next http.Handler) http.Handler {
    11  	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    12  		_, ctx, err := user.ExtractOrgIDFromHTTPRequest(r)
    13  		if err != nil {
    14  			http.Error(w, err.Error(), http.StatusUnauthorized)
    15  			return
    16  		}
    17  		next.ServeHTTP(w, r.WithContext(ctx))
    18  	})
    19  })