feat(chiauth): add GetJWS(r) helper

This commit is contained in:
AJ ONeal 2022-05-09 15:14:12 -06:00
parent 7c8ea53a6c
commit 97d0f2eec0
No known key found for this signature in database
GPG Key ID: 562702827EF68D87
3 changed files with 11 additions and 7 deletions

View File

@ -39,9 +39,8 @@ func main() {
r.Use(tokenVerifier) r.Use(tokenVerifier)
r.Post("/api/users/profile", func(w http.ResponseWriter, r *http.Request) { r.Post("/api/users/profile", func(w http.ResponseWriter, r *http.Request) {
ctx := r.Context() jws := chiauth.GetJWS(r)
jws, ok := ctx.Value(chiauth.JWSKey).(*libauth.JWS) if nil == jws || !jws.Trusted {
if !ok || !jws.Trusted {
http.Error(w, "Unauthorized", http.StatusUnauthorized) http.Error(w, "Unauthorized", http.StatusUnauthorized)
return return
} }

View File

@ -88,3 +88,10 @@ func NewTokenVerifier(opts VerificationParams) func(http.Handler) http.Handler {
}) })
} }
} }
// GetJWS retrieves *libauth.JWS from r.Context()
func GetJWS(r *http.Request) *libauth.JWS {
ctx := r.Context()
jws, _ := ctx.Value(JWSKey).(*libauth.JWS)
return jws
}

View File

@ -10,7 +10,6 @@ import (
"github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5"
"git.rootprojects.org/root/keypairs/keyfetch" "git.rootprojects.org/root/keypairs/keyfetch"
"git.rootprojects.org/root/libauth"
"git.rootprojects.org/root/libauth/chiauth" "git.rootprojects.org/root/libauth/chiauth"
) )
@ -38,9 +37,8 @@ func main() {
r.Use(tokenVerifier) r.Use(tokenVerifier)
r.Post("/api/users/profile", func(w http.ResponseWriter, r *http.Request) { r.Post("/api/users/profile", func(w http.ResponseWriter, r *http.Request) {
ctx := r.Context() jws := chiauth.GetJWS(r)
jws, ok := ctx.Value(chiauth.JWSKey).(*libauth.JWS) if nil == jws || !jws.Trusted {
if !ok || !jws.Trusted {
http.Error(w, "Unauthorized", http.StatusUnauthorized) http.Error(w, "Unauthorized", http.StatusUnauthorized)
return return
} }