github.com/xmidt-org/webpa-common@v1.11.9/secure/jws.go (about) 1 package secure 2 3 import ( 4 "github.com/SermoDigital/jose/jws" 5 ) 6 7 // JWSParser parses raw Tokens into JWS objects 8 type JWSParser interface { 9 ParseJWS(*Token) (jws.JWS, error) 10 } 11 12 type defaultJWSParser int 13 14 func (parser defaultJWSParser) ParseJWS(token *Token) (jws.JWS, error) { 15 if jwtToken, err := jws.ParseJWT(token.Bytes()); err == nil { 16 if trust, ok := jwtToken.Claims().Get("trust").(string); ok { 17 if len(trust) > 0 { 18 token.trust = trust 19 } 20 } 21 22 return jwtToken.(jws.JWS), nil 23 } else { 24 return nil, err 25 } 26 } 27 28 // DefaultJWSParser is the parser implementation that simply delegates to 29 // the SermoDigital library's jws.ParseJWT function. 30 var DefaultJWSParser JWSParser = defaultJWSParser(0)