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)