bugfix: ParseCompact should pass along unmarshaller
diff --git a/jws/jws.go b/jws/jws.go index d0b1a54..a0b929d 100644 --- a/jws/jws.go +++ b/jws/jws.go
@@ -301,7 +301,7 @@ // // For information on the json.Unmarshaler parameter, see Parse. func ParseCompact(encoded []byte, u ...json.Unmarshaler) (JWS, error) { - return parseCompact(encoded, false) + return parseCompact(encoded, false, u...) } func parseCompact(encoded []byte, jwt bool, u ...json.Unmarshaler) (*jws, error) {
diff --git a/jws/jws_test.go b/jws/jws_test.go index 7f27500..015fc32 100644 --- a/jws/jws_test.go +++ b/jws/jws_test.go
@@ -72,6 +72,22 @@ } } +func TestParseCompactWithUnmarshaler(t *testing.T) { + j := New(easyData, crypto.SigningMethodRS512) + b, err := j.Compact(rsaPriv) + if err != nil { + t.Error(err) + } + var e easy + j2, err := ParseCompact(b, &e) + if err != nil { + t.Error(err) + } + if !bytes.Equal(easyData, *j2.Payload().(*easy)) { + Error(t, easyData, *j2.Payload().(*easy)) + } +} + func TestParseGeneral(t *testing.T) { sm := []crypto.SigningMethod{ crypto.SigningMethodRS256,