package com.nimbusds.jwt; import junit.framework.TestCase; import com.nimbusds.jose.Algorithm; import com.nimbusds.jose.util.Base64URL; /** * Tests plain JWT object. Uses test vectors from JWT spec. * * @author Vladimir Dzhuvinov * @version $version$ (2012-09-28) */ public class PlainJWTTest extends TestCase { public void testBase64URLConstructor() throws Exception { // {"alg":"none"} Base64URL part1 = new Base64URL("eyJhbGciOiJub25lIn0"); // {"iss":"joe","exp":1300819380,"http://example.com/is_root":true} Base64URL part2 = new Base64URL("eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFt" + "cGxlLmNvbS9pc19yb290Ijp0cnVlfQ"); PlainJWT jwt = new PlainJWT(part1, part2); assertEquals(Algorithm.NONE, jwt.getHeader().getAlgorithm()); assertNull(jwt.getHeader().getType()); assertNull(jwt.getHeader().getContentType()); ReadOnlyClaimsSet cs = jwt.getClaimsSet(); assertEquals("joe", cs.getIssuerClaim()); assertEquals(1300819380, cs.getExpirationTimeClaim()); assertTrue((Boolean)cs.getCustomClaim("http://example.com/is_root")); } public void testParse() throws Exception { String s = "eyJhbGciOiJub25lIn0" + "." + "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFt" + "cGxlLmNvbS9pc19yb290Ijp0cnVlfQ" + "."; PlainJWT jwt = PlainJWT.parse(s); assertNotNull(jwt); assertEquals(Algorithm.NONE, jwt.getHeader().getAlgorithm()); assertNull(jwt.getHeader().getType()); assertNull(jwt.getHeader().getContentType()); ReadOnlyClaimsSet cs = jwt.getClaimsSet(); assertEquals("joe", cs.getIssuerClaim()); assertEquals(1300819380, cs.getExpirationTimeClaim()); assertTrue((Boolean)cs.getCustomClaim("http://example.com/is_root")); } }