From a2dc7369dc4f450afc90e5d4fd18481baee91d35 Mon Sep 17 00:00:00 2001 From: Luciano Balmaceda Date: Thu, 1 Dec 2016 18:28:43 -0300 Subject: [PATCH 1/3] keep public claims on claims tree --- README.md | 4 ++-- .../com/auth0/jwt/impl/HeaderDeserializer.java | 2 +- .../com/auth0/jwt/impl/PayloadDeserializer.java | 6 +++--- .../auth0/jwt/impl/HeaderDeserializerTest.java | 10 +++++----- .../auth0/jwt/impl/PayloadDeserializerTest.java | 17 ++++++++--------- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index ff2097e0..a62f7f75 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ String keyId = jwt.getKeyId(); #### Private Claims -Additional Claims defined in the token's Header can be obtained by calling `getHeaderClaim()` and passing the Claim name. A Claim will always be returned, even if it can't be found. You should always check for null values. +Additional Claims defined in the token's Header can be obtained by calling `getHeaderClaim()` and passing the Claim name. A Claim will always be returned, even if it can't be found. You can check if a Claim's value is null by calling `claim.isNull()`. ```java Claim claim = jwt.getHeaderClaim("owner"); @@ -256,7 +256,7 @@ String id = jwt.getId(); #### Private Claims -Additional Claims defined in the token's Payload can be obtained by calling `getClaim()` and passing the Claim name. A Claim will always be returned, even if it can't be found. You should always check for null values. +Additional Claims defined in the token's Payload can be obtained by calling `getClaim()` and passing the Claim name. A Claim will always be returned, even if it can't be found. You can check if a Claim's value is null by calling `claim.isNull()`. ```java Claim claim = jwt.getClaim("isAdmin"); diff --git a/lib/src/main/java/com/auth0/jwt/impl/HeaderDeserializer.java b/lib/src/main/java/com/auth0/jwt/impl/HeaderDeserializer.java index 4ea8771c..d42db420 100644 --- a/lib/src/main/java/com/auth0/jwt/impl/HeaderDeserializer.java +++ b/lib/src/main/java/com/auth0/jwt/impl/HeaderDeserializer.java @@ -36,7 +36,7 @@ public BasicHeader deserialize(JsonParser p, DeserializationContext ctxt) throws } String getString(Map tree, String claimName) { - JsonNode node = tree.remove(claimName); + JsonNode node = tree.get(claimName); if (node == null || node.isNull()) { return null; } diff --git a/lib/src/main/java/com/auth0/jwt/impl/PayloadDeserializer.java b/lib/src/main/java/com/auth0/jwt/impl/PayloadDeserializer.java index 5d30e87c..38068872 100644 --- a/lib/src/main/java/com/auth0/jwt/impl/PayloadDeserializer.java +++ b/lib/src/main/java/com/auth0/jwt/impl/PayloadDeserializer.java @@ -43,7 +43,7 @@ public Payload deserialize(JsonParser p, DeserializationContext ctxt) throws IOE } List getStringOrArray(Map tree, String claimName) throws JWTDecodeException { - JsonNode node = tree.remove(claimName); + JsonNode node = tree.get(claimName); if (node == null || node.isNull() || !(node.isArray() || node.isTextual())) { return null; } @@ -64,7 +64,7 @@ List getStringOrArray(Map tree, String claimName) thro } Date getDateFromSeconds(Map tree, String claimName) { - JsonNode node = tree.remove(claimName); + JsonNode node = tree.get(claimName); if (node == null || node.isNull() || !node.canConvertToLong()) { return null; } @@ -73,7 +73,7 @@ Date getDateFromSeconds(Map tree, String claimName) { } String getString(Map tree, String claimName) { - JsonNode node = tree.remove(claimName); + JsonNode node = tree.get(claimName); if (node == null || node.isNull()) { return null; } diff --git a/lib/src/test/java/com/auth0/jwt/impl/HeaderDeserializerTest.java b/lib/src/test/java/com/auth0/jwt/impl/HeaderDeserializerTest.java index 9ba9f8c5..3b6af385 100644 --- a/lib/src/test/java/com/auth0/jwt/impl/HeaderDeserializerTest.java +++ b/lib/src/test/java/com/auth0/jwt/impl/HeaderDeserializerTest.java @@ -58,7 +58,7 @@ public void shouldThrowOnNullTree() throws Exception { @Test - public void shouldRemoveKnownPublicClaimsFromTree() throws Exception { + public void shouldNotRemoveKnownPublicClaimsFromTree() throws Exception { String headerJSON = "{\n" + " \"alg\": \"HS256\",\n" + " \"typ\": \"jws\",\n" + @@ -80,10 +80,10 @@ public void shouldRemoveKnownPublicClaimsFromTree() throws Exception { assertThat(header.getKeyId(), is("key")); assertThat(header.getHeaderClaim("roles").asString(), is("admin")); - assertThat(header.getHeaderClaim("alg").isNull(), is(true)); - assertThat(header.getHeaderClaim("typ").isNull(), is(true)); - assertThat(header.getHeaderClaim("cty").isNull(), is(true)); - assertThat(header.getHeaderClaim("kid").isNull(), is(true)); + assertThat(header.getHeaderClaim("alg").asString(), is("HS256")); + assertThat(header.getHeaderClaim("typ").asString(), is("jws")); + assertThat(header.getHeaderClaim("cty").asString(), is("content")); + assertThat(header.getHeaderClaim("kid").asString(), is("key")); } @Test diff --git a/lib/src/test/java/com/auth0/jwt/impl/PayloadDeserializerTest.java b/lib/src/test/java/com/auth0/jwt/impl/PayloadDeserializerTest.java index adee7ead..faf9dd4e 100644 --- a/lib/src/test/java/com/auth0/jwt/impl/PayloadDeserializerTest.java +++ b/lib/src/test/java/com/auth0/jwt/impl/PayloadDeserializerTest.java @@ -71,7 +71,7 @@ public void shouldThrowWhenParsingArrayWithObjectValue() throws Exception { } @Test - public void shouldRemoveKnownPublicClaimsFromTree() throws Exception { + public void shouldNotRemoveKnownPublicClaimsFromTree() throws Exception { String payloadJSON = "{\n" + " \"iss\": \"auth0\",\n" + " \"sub\": \"emails\",\n" + @@ -99,14 +99,13 @@ public void shouldRemoveKnownPublicClaimsFromTree() throws Exception { assertThat(payload.getId(), is("idid")); assertThat(payload.getClaim("roles").asString(), is("admin")); - assertThat(payload.getClaim("iss").isNull(), is(true)); - assertThat(payload.getClaim("sub").isNull(), is(true)); - assertThat(payload.getClaim("aud").isNull(), is(true)); - assertThat(payload.getClaim("iat").isNull(), is(true)); - assertThat(payload.getClaim("exp").isNull(), is(true)); - assertThat(payload.getClaim("nbf").isNull(), is(true)); - assertThat(payload.getClaim("jti").isNull(), is(true)); - + assertThat(payload.getClaim("iss").asString(), is("auth0")); + assertThat(payload.getClaim("sub").asString(), is("emails")); + assertThat(payload.getClaim("aud").asString(), is("users")); + assertThat(payload.getClaim("iat").asDouble(), is(10101010D)); + assertThat(payload.getClaim("exp").asDouble(), is(11111111D)); + assertThat(payload.getClaim("nbf").asDouble(), is(10101011D)); + assertThat(payload.getClaim("jti").asString(), is("idid")); } @Test From bd39cb47713135834a5bffe12c6655f8f4800ff2 Mon Sep 17 00:00:00 2001 From: Hernan Zalazar Date: Thu, 1 Dec 2016 18:47:45 -0300 Subject: [PATCH 2/3] Specify sudo: false in travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 73469967..afa24235 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ jdk: before_cache: - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ +sudo: false cache: directories: - $HOME/.gradle/caches/ From 04940dd3c4f5074641ade6abdf7bb7900f11ec82 Mon Sep 17 00:00:00 2001 From: Luciano Balmaceda Date: Fri, 2 Dec 2016 15:21:43 -0300 Subject: [PATCH 3/3] add .codecov.yml --- .codecov.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .codecov.yml diff --git a/.codecov.yml b/.codecov.yml new file mode 100644 index 00000000..63e5785f --- /dev/null +++ b/.codecov.yml @@ -0,0 +1,14 @@ +coverage: + precision: 2 + round: down + range: "70...100" + status: + patch: + default: + if_no_uploads: error + changes: true + project: + default: + target: auto + if_no_uploads: error +comment: false \ No newline at end of file