MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / AuthFromAuthorizationHeader

Function AuthFromAuthorizationHeader

pkg/middlewares/http/jwt.go:69–81  ·  view source on GitHub ↗

AuthFromAuthorizationHeader is a middleware that extracts the token from the authorization header and verifies it

(keyFunc jwt.Keyfunc, claimsFunc ClaimsFunc, signingMethod jwt.SigningMethod, next nhttp.Handler)

Source from the content-addressed store, hash-verified

67
68// AuthFromAuthorizationHeader is a middleware that extracts the token from the authorization header and verifies it
69func AuthFromAuthorizationHeader(keyFunc jwt.Keyfunc, claimsFunc ClaimsFunc, signingMethod jwt.SigningMethod, next nhttp.Handler) nhttp.Handler {
70 return nhttp.HandlerFunc(func(w http.ResponseWriter, r *nhttp.Request) {
71 auths := strings.SplitN(r.Header.Get(authorizationKey), " ", 2)
72 if len(auths) != 2 || !strings.EqualFold(auths[0], bearerWord) {
73 nhttp.Error(w, "JWT token is missing", nhttp.StatusUnauthorized)
74 return
75 }
76
77 jwtToken := auths[1]
78
79 verifyJWTAndServeNext(w, r, jwtToken, keyFunc, claimsFunc, signingMethod, next)
80 })
81}
82
83// verifyAndMarshalJWT verifies the token and returns the map claims
84func verifyAndMarshalJWT(token string, keyFunc jwt.Keyfunc, claimsFunc ClaimsFunc, signingMethod jwt.SigningMethod) (*jwt.Claims, error) {

Calls 3

verifyJWTAndServeNextFunction · 0.85
GetMethod · 0.65
ErrorMethod · 0.65