From 9d4cafd2c9de4e8cba63d0752bdde5e13bb09a6d Mon Sep 17 00:00:00 2001 From: Misagh Moayyed Date: Wed, 7 Sep 2016 15:47:04 +0430 Subject: [PATCH 1/2] Let assertion validity checks to be more flexible when comparing dates. --- .../java/org/jasig/cas/client/validation/AssertionImpl.java | 6 ++++++ .../org/jasig/cas/client/validation/AssertionImplTests.java | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AssertionImpl.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AssertionImpl.java index 86e286f..14064c1 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AssertionImpl.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AssertionImpl.java @@ -101,26 +101,32 @@ public final class AssertionImpl implements Assertion { CommonUtils.assertNotNull(this.attributes, "attributes cannot be null."); } + @Override public Date getAuthenticationDate() { return this.authenticationDate; } + @Override public Date getValidFromDate() { return this.validFromDate; } + @Override public Date getValidUntilDate() { return this.validUntilDate; } + @Override public Map getAttributes() { return this.attributes; } + @Override public AttributePrincipal getPrincipal() { return this.principal; } + @Override public boolean isValid() { if (this.validFromDate == null) { return true; diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/validation/AssertionImplTests.java b/cas-client-core/src/test/java/org/jasig/cas/client/validation/AssertionImplTests.java index de6e856..b175523 100644 --- a/cas-client-core/src/test/java/org/jasig/cas/client/validation/AssertionImplTests.java +++ b/cas-client-core/src/test/java/org/jasig/cas/client/validation/AssertionImplTests.java @@ -49,6 +49,11 @@ public final class AssertionImplTests extends TestCase { assertNull(assertion.getPrincipal().getProxyTicketFor("test")); } + public void testAssertionValidity() throws Exception { + final Assertion assertion = new AssertionImpl(CONST_PRINCIPAL, CONST_ATTRIBUTES); + assertTrue(assertion.isValid()); + } + public void testCompleteConstructor() { final Assertion assertion = new AssertionImpl(CONST_PRINCIPAL, CONST_ATTRIBUTES); From 9e95ee5825589c01221144f3153ddaf0f7a0134b Mon Sep 17 00:00:00 2001 From: Misagh Moayyed Date: Wed, 7 Sep 2016 16:10:16 +0430 Subject: [PATCH 2/2] Handle date equality when checking for saml assertion validity --- .../java/org/jasig/cas/client/validation/AssertionImpl.java | 3 ++- .../org/jasig/cas/client/validation/AssertionImplTests.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AssertionImpl.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AssertionImpl.java index 14064c1..da40aba 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AssertionImpl.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AssertionImpl.java @@ -133,6 +133,7 @@ public final class AssertionImpl implements Assertion { } final Date now = new Date(); - return this.validFromDate.before(now) && (this.validUntilDate == null || this.validUntilDate.after(now)); + return (this.validFromDate.before(now) || this.validFromDate.equals(now)) + && (this.validUntilDate == null || this.validUntilDate.after(now) || this.validUntilDate.equals(now)); } } diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/validation/AssertionImplTests.java b/cas-client-core/src/test/java/org/jasig/cas/client/validation/AssertionImplTests.java index b175523..335dbe6 100644 --- a/cas-client-core/src/test/java/org/jasig/cas/client/validation/AssertionImplTests.java +++ b/cas-client-core/src/test/java/org/jasig/cas/client/validation/AssertionImplTests.java @@ -18,6 +18,7 @@ */ package org.jasig.cas.client.validation; +import java.util.Date; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; @@ -50,7 +51,7 @@ public final class AssertionImplTests extends TestCase { } public void testAssertionValidity() throws Exception { - final Assertion assertion = new AssertionImpl(CONST_PRINCIPAL, CONST_ATTRIBUTES); + final Assertion assertion = new AssertionImpl(CONST_PRINCIPAL, new Date(), new Date(), new Date(), CONST_ATTRIBUTES); assertTrue(assertion.isValid()); }