You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by rl...@apache.org on 2016/04/19 16:55:26 UTC
ambari git commit: AMBARI-15479. JwtAuthenticationFilter needs to
accommodate null JWT expiration time (Larry McCay via rlevas)
Repository: ambari
Updated Branches:
refs/heads/trunk e5f6b0fd1 -> c36e45891
AMBARI-15479. JwtAuthenticationFilter needs to accommodate null JWT expiration time (Larry McCay via rlevas)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c36e4589
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c36e4589
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c36e4589
Branch: refs/heads/trunk
Commit: c36e4589197f64dd2f834abf9459d1a1a6d57d29
Parents: e5f6b0f
Author: Larry McCay <lm...@apache.org>
Authored: Tue Apr 19 10:54:51 2016 -0400
Committer: Robert Levas <rl...@hortonworks.com>
Committed: Tue Apr 19 10:55:09 2016 -0400
----------------------------------------------------------------------
.../jwt/JwtAuthenticationFilter.java | 2 +-
.../jwt/JwtAuthenticationFilterTest.java | 26 +++++++++++++++++---
2 files changed, 24 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/c36e4589/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilter.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilter.java b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilter.java
index 514d42a..a097df1 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilter.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilter.java
@@ -350,7 +350,7 @@ public class JwtAuthenticationFilter implements Filter {
boolean valid = false;
try {
Date expires = jwtToken.getJWTClaimsSet().getExpirationTime();
- if (expires != null && new Date().before(expires)) {
+ if (expires == null || new Date().before(expires)) {
LOG.debug("JWT token expiration date has been "
+ "successfully validated");
valid = true;
http://git-wip-us.apache.org/repos/asf/ambari/blob/c36e4589/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilterTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilterTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilterTest.java
index ae47694..4999bb3 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilterTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/jwt/JwtAuthenticationFilterTest.java
@@ -90,18 +90,23 @@ public class JwtAuthenticationFilterTest {
}
private SignedJWT getSignedToken() throws JOSEException {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(System.currentTimeMillis());
+ calendar.add(Calendar.DATE, 1); //add one day
+ return getSignedToken(calendar.getTime());
+ }
+
+ private SignedJWT getSignedToken(Date expirationTime) throws JOSEException {
RSASSASigner signer = new RSASSASigner(privateKey);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
-
JWTClaimsSet claimsSet = new JWTClaimsSet();
claimsSet.setSubject("test-user");
claimsSet.setIssuer("unit-test");
claimsSet.setIssueTime(calendar.getTime());
- calendar.add(Calendar.DATE, 1); //add one day
- claimsSet.setExpirationTime(calendar.getTime());
+ claimsSet.setExpirationTime(expirationTime);
claimsSet.setAudience("test-audience");
@@ -241,4 +246,19 @@ public class JwtAuthenticationFilterTest {
assertEquals(false, isValid);
}
+
+ @Test
+ public void testValidateNoExpiration() throws Exception {
+ JwtAuthenticationProperties properties = createTestProperties();
+ JwtAuthenticationFilter filter = new JwtAuthenticationFilter(properties, null, null);
+
+ boolean isValid = filter.validateExpiration(getSignedToken(null));
+
+ assertEquals(true, isValid);
+
+ isValid = filter.validateExpiration(getInvalidToken());
+
+ assertEquals(false, isValid);
+
+ }
}
\ No newline at end of file