Merge branch 'eliquious-fix-multiple-audience-bug'
diff --git a/jwt/claims_test.go b/jwt/claims_test.go index e22cb07..c5edd70 100644 --- a/jwt/claims_test.go +++ b/jwt/claims_test.go
@@ -1 +1,85 @@ -package jwt +package jwt_test + +import ( + "testing" + + "github.com/SermoDigital/jose/crypto" + "github.com/SermoDigital/jose/jws" +) + +func TestMultipleAudienceBug_AfterMarshal(t *testing.T) { + + // Create JWS claims + claims := jws.Claims{} + claims.SetAudience("example.com", "api.example.com") + + token := jws.NewJWT(claims, crypto.SigningMethodHS256) + serializedToken, _ := token.Serialize([]byte("abcdef")) + + // Unmarshal JSON + newToken, _ := jws.ParseJWT(serializedToken) + + c := newToken.Claims() + + // Get Audience + aud, ok := c.Audience() + if !ok { + + // Fails + t.Fail() + } + + t.Logf("aud Value: %s", aud) + t.Logf("aud Type : %T", aud) +} + +func TestMultipleAudienceFix_AfterMarshal(t *testing.T) { + // Create JWS claims + claims := jws.Claims{} + claims.SetAudience("example.com", "api.example.com") + + token := jws.NewJWT(claims, crypto.SigningMethodHS256) + serializedToken, _ := token.Serialize([]byte("abcdef")) + + // Unmarshal JSON + newToken, _ := jws.ParseJWT(serializedToken) + + c := newToken.Claims() + + // Get Audience + aud, ok := c.Audience() + if !ok { + + // Fails + t.Fail() + } + + t.Logf("aud len(): %d", len(aud)) + t.Logf("aud Value: %s", aud) + t.Logf("aud Type : %T", aud) +} + +func TestSingleAudienceFix_AfterMarshal(t *testing.T) { + // Create JWS claims + claims := jws.Claims{} + claims.SetAudience("example.com") + + token := jws.NewJWT(claims, crypto.SigningMethodHS256) + serializedToken, _ := token.Serialize([]byte("abcdef")) + + // Unmarshal JSON + newToken, _ := jws.ParseJWT(serializedToken) + c := newToken.Claims() + + // Get Audience + aud, ok := c.Audience() + if !ok { + + // Fails + t.Fail() + } + + t.Logf("aud len(): %d", len(aud)) + t.Logf("aud Value: %s", aud) + t.Logf("aud Type : %T", aud) +}