diff --git a/src/main/java/io/jsonwebtoken/impl/DefaultJws.java b/src/main/java/io/jsonwebtoken/impl/DefaultJws.java index f1b4958b..fe83244c 100644 --- a/src/main/java/io/jsonwebtoken/impl/DefaultJws.java +++ b/src/main/java/io/jsonwebtoken/impl/DefaultJws.java @@ -44,4 +44,9 @@ public class DefaultJws implements Jws { public String getSignature() { return this.signature; } + + @Override + public String toString() { + return "header=" + header + ",body=" + body + ",signature=" + signature; + } } diff --git a/src/main/java/io/jsonwebtoken/impl/DefaultJwt.java b/src/main/java/io/jsonwebtoken/impl/DefaultJwt.java index d5ed16c9..e09bd006 100644 --- a/src/main/java/io/jsonwebtoken/impl/DefaultJwt.java +++ b/src/main/java/io/jsonwebtoken/impl/DefaultJwt.java @@ -37,4 +37,9 @@ public class DefaultJwt implements Jwt { public B getBody() { return body; } + + @Override + public String toString() { + return "header=" + header + ",body=" + body; + } } diff --git a/src/main/java/io/jsonwebtoken/impl/JwtMap.java b/src/main/java/io/jsonwebtoken/impl/JwtMap.java index 7c2de6d4..40d21224 100644 --- a/src/main/java/io/jsonwebtoken/impl/JwtMap.java +++ b/src/main/java/io/jsonwebtoken/impl/JwtMap.java @@ -150,4 +150,9 @@ public class JwtMap implements Map { public Set> entrySet() { return map.entrySet(); } + + @Override + public String toString() { + return map.toString(); + } } diff --git a/src/test/groovy/io/jsonwebtoken/impl/DefaultJwsTest.groovy b/src/test/groovy/io/jsonwebtoken/impl/DefaultJwsTest.groovy index 3acaf314..33f0d97a 100644 --- a/src/test/groovy/io/jsonwebtoken/impl/DefaultJwsTest.groovy +++ b/src/test/groovy/io/jsonwebtoken/impl/DefaultJwsTest.groovy @@ -17,6 +17,8 @@ package io.jsonwebtoken.impl import io.jsonwebtoken.JwsHeader import io.jsonwebtoken.Jwts +import io.jsonwebtoken.SignatureAlgorithm +import io.jsonwebtoken.impl.crypto.MacProvider import org.junit.Test import static org.junit.Assert.* @@ -32,4 +34,15 @@ class DefaultJwsTest { assertEquals jws.getBody(), 'foo' assertEquals jws.getSignature(), 'sig' } + + @Test + void testToString() { + //create random signing key for testing: + byte[] key = MacProvider.generateKey().encoded + String compact = Jwts.builder().claim('foo', 'bar').signWith(SignatureAlgorithm.HS256, key).compact(); + int i = compact.lastIndexOf('.') + String signature = compact.substring(i + 1) + def jws = Jwts.parser().setSigningKey(key).parseClaimsJws(compact) + assertEquals 'header={alg=HS256},body={foo=bar},signature=' + signature, jws.toString() + } } diff --git a/src/test/groovy/io/jsonwebtoken/impl/DefaultJwtTest.groovy b/src/test/groovy/io/jsonwebtoken/impl/DefaultJwtTest.groovy new file mode 100644 index 00000000..e916e509 --- /dev/null +++ b/src/test/groovy/io/jsonwebtoken/impl/DefaultJwtTest.groovy @@ -0,0 +1,18 @@ +package io.jsonwebtoken.impl + +import io.jsonwebtoken.Jwt +import io.jsonwebtoken.Jwts +import org.junit.Test + +import static org.junit.Assert.assertEquals + +class DefaultJwtTest { + + @Test + void testToString() { + String compact = Jwts.builder().setHeaderParam('foo', 'bar').setAudience('jsmith').compact(); + Jwt jwt = Jwts.parser().parseClaimsJwt(compact); + assertEquals 'header={foo=bar, alg=none},body={aud=jsmith}', jwt.toString() + } + +}