Skip to content

Commit fdadcc1

Browse files
authored
Merge pull request #42 from dolthub/bh/jwt-via-query-param
support jwt query parameter
2 parents 2cc57bf + 082ddfe commit fdadcc1

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

mcp/pkg/jwt_auth.go

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,28 @@ func withBearerAuth(logger *zap.Logger, next http.Handler, jwkClaimsMap map[stri
2020
}
2121

2222
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
23+
// auth will be "" if the "Authorization" header is not set
2324
auth := r.Header.Get("Authorization")
24-
if !strings.HasPrefix(auth, "Bearer ") {
25-
http.Error(w, "unauthorized", http.StatusUnauthorized)
26-
return
25+
26+
var token string
27+
if strings.HasPrefix(auth, "Bearer ") {
28+
token = strings.TrimPrefix(auth, "Bearer ")
29+
token = strings.TrimSpace(token)
30+
} else {
31+
vals := r.URL.Query()
32+
33+
for key, arr := range vals {
34+
if key == "jwt" && len(arr) == 1 {
35+
token = strings.TrimSpace(arr[0])
36+
break
37+
}
38+
}
39+
40+
if token == "" {
41+
http.Error(w, "unauthorized", http.StatusUnauthorized)
42+
return
43+
}
2744
}
28-
token := strings.TrimPrefix(auth, "Bearer ")
29-
token = strings.TrimSpace(token)
3045

3146
// validate token
3247
valid, _, err := validateJWT(logger, pr, token, time.Now())

0 commit comments

Comments
 (0)