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,