1package jwt 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 jose "gopkg.in/square/go-jose.v2" 8 "gopkg.in/square/go-jose.v2/jwt" 9) 10 11type noneSigner struct{} 12 13func sign(t *testing.T, key interface{}, claims interface{}) string { 14 t.Helper() 15 16 sig, err := jose.NewSigner(jose.SigningKey{Algorithm: jose.PS512, Key: key}, (&jose.SignerOptions{}).WithType("JWT")) 17 require.NoError(t, err) 18 token, err := jwt.Signed(sig).Claims(claims).CompactSerialize() 19 require.NoError(t, err) 20 return token 21} 22 23func (s noneSigner) Public() *jose.JSONWebKey { 24 return nil 25} 26 27func (s noneSigner) Algs() []jose.SignatureAlgorithm { 28 return []jose.SignatureAlgorithm{"none"} 29} 30 31func (s noneSigner) SignPayload(payload []byte, alg jose.SignatureAlgorithm) ([]byte, error) { 32 return nil, nil 33} 34 35func signNone(t *testing.T, claims interface{}) string { 36 t.Helper() 37 38 sig, err := jose.NewSigner(jose.SigningKey{Algorithm: "none", Key: noneSigner{}}, (&jose.SignerOptions{}).WithType("JWT")) 39 require.NoError(t, err) 40 token, err := jwt.Signed(sig).Claims(claims).CompactSerialize() 41 require.NoError(t, err) 42 return token 43} 44