[java-identity-provider] 04/04: IDP-2069 Null Handling
Rod Widdowson
rdw at steadingsoftware.com
Wed Mar 15 13:38:40 UTC 2023
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=1a3d0c57f32dc6a3bd40ab78dbee5352a488e9b7
commit 1a3d0c57f32dc6a3bd40ab78dbee5352a488e9b7
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Mar 14 16:40:53 2023 +0000
IDP-2069 Null Handling
https://shibboleth.atlassian.net/browse/IDP-2069
Remove several warnings from idp-cas-*
---
.../idp/authn/AbstractValidationAction.java | 2 +-
.../idp/cas/protocol/TicketValidationResponse.java | 8 ++++--
.../idp/cas/flow/impl/GrantProxyTicketAction.java | 4 ++-
.../cas/flow/impl/GrantServiceTicketAction.java | 5 ++--
.../cas/flow/impl/ValidateProxyCallbackAction.java | 3 ++-
.../cas/proxy/impl/HttpClientProxyValidator.java | 1 +
.../cas/service/impl/DefaultServiceComparator.java | 12 +++++++--
.../impl/CASDateTimeAttributeTranscoderTest.java | 12 +++++----
.../idp/cas/flow/impl/AbstractFlowActionTest.java | 10 +++++---
.../flow/impl/ValidateProxyCallbackActionTest.java | 21 ++++++++++-----
.../cas/flow/impl/ValidateTicketActionTest.java | 10 ++++++--
.../service/impl/MetadataServiceRegistryTest.java | 5 ++--
.../session/impl/CASSPSessionSerializerTest.java | 13 +++++++---
.../cas/ticket/impl/EncodingTicketServiceTest.java | 30 ++++++++++++++--------
.../cas/ticket/impl/SimpleTicketServiceTest.java | 14 ++++++----
.../impl/ProxyGrantingTicketSerializerTest.java | 18 +++++++++----
.../impl/ProxyTicketSerializerTest.java | 13 +++++++---
.../impl/ServiceTicketSerializerTest.java | 21 ++++++++++-----
18 files changed, 142 insertions(+), 60 deletions(-)
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java
index 8b30e0c3e..3a4d5a214 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java
@@ -172,7 +172,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
// For now this is using the older wrapper approach to guarding a live map to maintain the map insertion order.
final Map<String,Collection<String>> result = Collections.unmodifiableMap(classifiedMessages);
assert result != null;
- return result;
+ return result;
}
/**
diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/TicketValidationResponse.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/TicketValidationResponse.java
index 7d161c152..83d2c6101 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/TicketValidationResponse.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/TicketValidationResponse.java
@@ -82,7 +82,9 @@ public class TicketValidationResponse extends AbstractProtocolResponse {
* @return immutable collection of user attributes
*/
@Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<Attribute> getAttributes() {
- return Collections.unmodifiableList(attributes);
+ final Collection<Attribute> result = Collections.unmodifiableList(attributes);
+ assert result!=null;
+ return result;
}
/**
@@ -118,7 +120,9 @@ public class TicketValidationResponse extends AbstractProtocolResponse {
* @return immutable list of proxies traversed in order of most recent to last recent
*/
@Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getProxies() {
- return Collections.unmodifiableList(proxies);
+ final List<String> result = Collections.unmodifiableList(proxies);
+ assert result!=null;
+ return result;
}
/**
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantProxyTicketAction.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantProxyTicketAction.java
index 949910c19..0bc35b5fe 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantProxyTicketAction.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantProxyTicketAction.java
@@ -191,9 +191,11 @@ public class GrantProxyTicketAction extends AbstractCASProtocolAction<ProxyTicke
assert ptr != null && pCfg != null && sCfg != null;
try {
log.debug("{} Granting proxy ticket for {}", getLogPrefix(), ptr.getTargetService());
+ final Instant then =Instant.now().plus(pCfg.getTicketValidityPeriod(profileRequestContext));
+ assert then != null;
pt = casTicketService.createProxyTicket(
sCfg.getIdGenerator().generateIdentifier(),
- Instant.now().plus(pCfg.getTicketValidityPeriod(profileRequestContext)),
+ then,
pgt,
ptr.getTargetService());
} catch (final RuntimeException e) {
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantServiceTicketAction.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantServiceTicketAction.java
index fb2c4303b..b2a6bef4d 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantServiceTicketAction.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/GrantServiceTicketAction.java
@@ -223,10 +223,11 @@ public class GrantServiceTicketAction extends AbstractCASProtocolAction<ServiceT
state.setConsentedAttributeIds(attributeCtx.getIdPAttributes().keySet());
}
- assert securityConfig != null;
+ final Instant then = Instant.now().plus(lCfg.getTicketValidityPeriod(profileRequestContext));
+ assert securityConfig != null && then != null;
ticket = casTicketService.createServiceTicket(
securityConfig.getIdGenerator().generateIdentifier(),
- Instant.now().plus(lCfg.getTicketValidityPeriod(profileRequestContext)),
+ then,
stReq.getService(),
state,
stReq.isRenew());
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/ValidateProxyCallbackAction.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/ValidateProxyCallbackAction.java
index ce8e76c57..23ab1466b 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/ValidateProxyCallbackAction.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/ValidateProxyCallbackAction.java
@@ -150,7 +150,8 @@ public class ValidateProxyCallbackAction
@Nonnull final IdentifierGenerationStrategy pgtGenerator = sCfg.getIdGenerator();
@Nonnull final IdentifierGenerationStrategy pgtIOUGenerator = vCfg.getPGTIOUGenerator(profileRequestContext);
- @Nonnull final Instant expiration = Instant.now().plus(vCfg.getTicketValidityPeriod(profileRequestContext));
+ final Instant expiration = Instant.now().plus(vCfg.getTicketValidityPeriod(profileRequestContext));
+ assert expiration!=null;
@Nonnull final String pgtId = pgtGenerator.generateIdentifier();
final String pgtUrl = request.getPgtUrl();
assert pgtUrl != null;
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java
index 30e4028b6..1083ae0b3 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java
@@ -208,6 +208,7 @@ public class HttpClientProxyValidator implements ProxyValidator {
} else {
entityID = service.getName();
}
+ assert entityID!=null;
final CriteriaSet criteria = new CriteriaSet(
new EntityIdCriterion(entityID),
new EntityRoleCriterion(SPSSODescriptor.DEFAULT_ELEMENT_NAME),
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/service/impl/DefaultServiceComparator.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/service/impl/DefaultServiceComparator.java
index b26a96f45..2330759bd 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/service/impl/DefaultServiceComparator.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/service/impl/DefaultServiceComparator.java
@@ -35,7 +35,11 @@ public class DefaultServiceComparator extends net.shibboleth.idp.cas.service.Def
/** Creates a new instance that ignores <em>;jsessionid=value</em>. */
public DefaultServiceComparator() {
- DeprecationSupport.warn(ObjectType.CLASS, getClass().getName(), "cas-protocol.xml",
+ final Class<? extends DefaultServiceComparator> claz = getClass();
+ assert claz!=null;
+ final String className = claz.getName();
+ assert className!=null;
+ DeprecationSupport.warn(ObjectType.CLASS, className, "cas-protocol.xml",
"net.shibboleth.idp.cas.service.DefaultServiceComparator");
}
@@ -46,7 +50,11 @@ public class DefaultServiceComparator extends net.shibboleth.idp.cas.service.Def
*/
public DefaultServiceComparator(@Nonnull final String ... parameterNames) {
super(parameterNames);
- DeprecationSupport.warn(ObjectType.CLASS, getClass().getName(), "cas-protocol.xml",
+ final Class<? extends DefaultServiceComparator> claz = getClass();
+ assert claz!=null;
+ final String className = claz.getName();
+ assert className!=null;
+ DeprecationSupport.warn(ObjectType.CLASS, className, "cas-protocol.xml",
"net.shibboleth.idp.cas.service.DefaultServiceComparator");
}
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASDateTimeAttributeTranscoderTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASDateTimeAttributeTranscoderTest.java
index dfe94e1e9..4a8dc65a3 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASDateTimeAttributeTranscoderTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASDateTimeAttributeTranscoderTest.java
@@ -54,10 +54,10 @@ public class CASDateTimeAttributeTranscoderTest {
private AttributeTranscoderRegistryImpl registry;
- private final static String ATTR_ID = "foo";
- private final static String ATTR_NAME = "bar";
- private final static String STRING_SECS = "1659979872";
- private final static String STRING_ISO = "2022-08-08T17:31:12.969Z";
+ @Nonnull private final static String ATTR_ID = "foo";
+ @Nonnull private final static String ATTR_NAME = "bar";
+ @Nonnull private final static String STRING_SECS = "1659979872";
+ @Nonnull private final static String STRING_ISO = "2022-08-08T17:31:12.969Z";
@BeforeClass public void setUp() throws ComponentInitializationException {
@@ -142,8 +142,10 @@ public class CASDateTimeAttributeTranscoderTest {
}
@Test public void single() throws Exception {
+ final Instant instant =Instant.parse(STRING_ISO);
+ assert instant!=null;
final List<IdPAttributeValue> values =
- List.of(new ByteAttributeValue(new byte[] {1, 2, 3,}), new DateTimeAttributeValue(Instant.parse(STRING_ISO)));
+ List.of(new ByteAttributeValue(new byte[] {1, 2, 3,}), new DateTimeAttributeValue(instant));
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_ID);
inputAttribute.setValues(values);
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/AbstractFlowActionTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/AbstractFlowActionTest.java
index 8afc9b648..f01e012e9 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/AbstractFlowActionTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/AbstractFlowActionTest.java
@@ -104,7 +104,9 @@ public abstract class AbstractFlowActionTest extends AbstractTestNGSpringContext
}
@Nonnull protected static Instant expiry() {
- return Instant.now().plusSeconds(30);
+ final Instant result = Instant.now().plusSeconds(30);
+ assert result!=null;
+ return result;
}
@Nonnull protected String generateServiceTicketId() {
@@ -120,7 +122,9 @@ public abstract class AbstractFlowActionTest extends AbstractTestNGSpringContext
}
@Nonnull protected ServiceTicket createServiceTicket(@Nonnull final String service, final boolean renew) {
- final TicketState state = new TicketState(TEST_SESSION_ID, TEST_PRINCIPAL_NAME, Instant.now(), "Password");
+ final Instant now=Instant.now();
+ assert now!=null;
+ final TicketState state = new TicketState(TEST_SESSION_ID, TEST_PRINCIPAL_NAME, now, "Password");
return ticketService.createServiceTicket(generateServiceTicketId(), expiry(), service, state, renew);
}
@@ -151,7 +155,7 @@ public abstract class AbstractFlowActionTest extends AbstractTestNGSpringContext
*/
public static class MockDataSealerKeyStrategy implements DataSealerKeyStrategy {
/** Static key. */
- private final SecretKey key;
+ @Nonnull private final SecretKey key;
/**
* Constructor.
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/ValidateProxyCallbackActionTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/ValidateProxyCallbackActionTest.java
index b92e76f98..83a3465a9 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/ValidateProxyCallbackActionTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/ValidateProxyCallbackActionTest.java
@@ -22,6 +22,7 @@ import java.security.cert.CertificateException;
import java.time.Instant;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import net.shibboleth.idp.cas.config.ValidateConfiguration;
import net.shibboleth.idp.cas.protocol.ProtocolError;
@@ -29,6 +30,7 @@ import net.shibboleth.idp.cas.protocol.TicketValidationRequest;
import net.shibboleth.idp.cas.protocol.TicketValidationResponse;
import net.shibboleth.idp.cas.proxy.ProxyValidator;
import net.shibboleth.idp.cas.ticket.ServiceTicket;
+import net.shibboleth.idp.cas.ticket.TicketService;
import net.shibboleth.idp.cas.ticket.TicketState;
import org.opensaml.profile.context.ProfileRequestContext;
import org.springframework.webflow.execution.Event;
@@ -50,9 +52,10 @@ public class ValidateProxyCallbackActionTest extends AbstractFlowActionTest {
@Test
public void testValidateProxySuccess() throws Exception {
- @SuppressWarnings("null")
+ final TicketService ts = ticketService;
+ assert ts!=null;
final ValidateProxyCallbackAction action = new ValidateProxyCallbackAction(
- mockProxyAuthenticator((Exception) nullObj), ticketService);
+ mockProxyAuthenticator((Exception) nullObj), ts);
action.initialize();
final RequestContext context = newRequestContext("https://test.example.org/");
assertNull(action.execute(context));
@@ -63,19 +66,23 @@ public class ValidateProxyCallbackActionTest extends AbstractFlowActionTest {
@Test
public void testValidateProxyFailure() throws Exception {
+ final TicketService ts = ticketService;
+ assert ts!=null;
final ValidateProxyCallbackAction action = new ValidateProxyCallbackAction(
- mockProxyAuthenticator(new CertificateException()), ticketService);
+ mockProxyAuthenticator(new CertificateException()), ts);
action.initialize();
final Event event = action.execute(newRequestContext("https://test.example.org/"));
assert event != null;
assertEquals(event.getId(),ProtocolError.ProxyCallbackAuthenticationFailure.name());
}
- @Nonnull private static ProxyValidator mockProxyAuthenticator(@Nonnull final Exception toBeThrown)
+ @SuppressWarnings("null")
+ @Nonnull private static ProxyValidator mockProxyAuthenticator(@Nullable final Exception toBeThrown)
throws Exception {
final ProxyValidator validator = mock(ProxyValidator.class);
assert validator!= null;
if (toBeThrown != null) {
+ // We cannot exbed the any calls below - there is serious magicke in the order
doThrow(toBeThrown).when(validator).validate(any(ProfileRequestContext.class), any(URI.class));
}
return validator;
@@ -84,8 +91,10 @@ public class ValidateProxyCallbackActionTest extends AbstractFlowActionTest {
@Nonnull private static RequestContext newRequestContext(final String pgtURL) {
final String service = "https://test.example.com/";
final String ticketId = "ST-123-ABCCEF";
- final ServiceTicket st = new ServiceTicket(ticketId, service, Instant.now(), false);
- st.setTicketState(new TicketState("SessionID-123", "bob", Instant.now(), "bob"));
+ final Instant now = Instant.now();
+ assert now!=null;
+ final ServiceTicket st = new ServiceTicket(ticketId, service, now, false);
+ st.setTicketState(new TicketState("SessionID-123", "bob", now, "bob"));
final TicketValidationRequest request = new TicketValidationRequest(service, ticketId);
request.setPgtUrl(pgtURL);
final RequestContext context = new TestContextBuilder(ValidateConfiguration.PROFILE_ID)
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/ValidateTicketActionTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/ValidateTicketActionTest.java
index a23cc9f8f..ddd6db19d 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/ValidateTicketActionTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/flow/impl/ValidateTicketActionTest.java
@@ -76,9 +76,13 @@ public class ValidateTicketActionTest extends AbstractFlowActionTest {
@Test
public void testTicketExpired() throws Exception {
final int ticketTTLMillis = 10;
- final TicketState state = new TicketState(TEST_SESSION_ID, TEST_PRINCIPAL_NAME, Instant.now(), "Password");
+ final Instant now = Instant.now();
+ assert now!=null;
+ final Instant then = now.plusMillis(ticketTTLMillis);
+ assert then != null;
+ final TicketState state = new TicketState(TEST_SESSION_ID, TEST_PRINCIPAL_NAME, now, "Password");
final ServiceTicket ticket = ticketService.createServiceTicket(
- generateServiceTicketId(), Instant.now().plusMillis(ticketTTLMillis), TEST_SERVICE, state, false);
+ generateServiceTicketId(), then, TEST_SERVICE, state, false);
final RequestContext context = new TestContextBuilder(ValidateConfiguration.PROFILE_ID)
.addProtocolContext(new TicketValidationRequest(TEST_SERVICE, ticket.getId()), null)
.addRelyingPartyContext(ticket.getService(), true, new ValidateConfiguration())
@@ -90,6 +94,7 @@ public class ValidateTicketActionTest extends AbstractFlowActionTest {
assertEquals(event.getId(), ProtocolError.TicketExpired.name());
}
+ @SuppressWarnings("null")
@Test
public void testTicketRetrievalError() throws Exception {
final TicketService throwingTicketService = mock(TicketService.class);
@@ -148,6 +153,7 @@ public class ValidateTicketActionTest extends AbstractFlowActionTest {
}
private static ValidateTicketAction newAction(final TicketService service) {
+ assert service!=null;
final ValidateTicketAction action = new ValidateTicketAction(service);
try {
action.initialize();
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/service/impl/MetadataServiceRegistryTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/service/impl/MetadataServiceRegistryTest.java
index 5ec95adab..25bf6c655 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/service/impl/MetadataServiceRegistryTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/service/impl/MetadataServiceRegistryTest.java
@@ -18,7 +18,6 @@
package net.shibboleth.idp.cas.service.impl;
import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import java.time.Duration;
@@ -91,7 +90,9 @@ public class MetadataServiceRegistryTest {
final ParserPool pool = XMLObjectProviderRegistrySupport.getParserPool();
assert pool != null;
metadataResolver.setParserPool(pool);
- metadataResolver.setMaxRefreshDelay(Duration.ofSeconds(500));
+ final Duration fiveHundredSeconds =Duration.ofSeconds(500);
+ assert fiveHundredSeconds!=null;
+ metadataResolver.setMaxRefreshDelay(fiveHundredSeconds);
metadataResolver.setId("cas");
metadataResolver.setIndexes(Collections.<MetadataIndex>singleton(new EndpointMetadataIndex(
new MetadataServiceRegistry.LoginEndpointPredicate())));
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/session/impl/CASSPSessionSerializerTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/session/impl/CASSPSessionSerializerTest.java
index b4132e937..f285c6c70 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/session/impl/CASSPSessionSerializerTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/session/impl/CASSPSessionSerializerTest.java
@@ -27,14 +27,21 @@ import java.time.Instant;
@SuppressWarnings("javadoc")
public class CASSPSessionSerializerTest {
- private CASSPSessionSerializer serializer = new CASSPSessionSerializer(Duration.ZERO);
+ private final CASSPSessionSerializer serializer;
+ CASSPSessionSerializerTest() {
+ final Duration zero = Duration.ZERO;
+ assert zero!=null;
+ serializer = new CASSPSessionSerializer(zero);
+ }
@Test
public void testSerializeDeserialize() throws Exception{
- final Instant exp = Instant.ofEpochMilli(1410539474000000000L);
+ final Instant exp = Instant.ofEpochMilli(1410539474000000000L);
+ final Instant other = Instant.ofEpochMilli(1410532279838046000L);
+ assert exp!=null&&other!=null;
final CASSPSession original = new CASSPSession(
"https://foo.example.com/shibboleth",
- Instant.ofEpochMilli(1410532279838046000L),
+ other,
exp,
"ST-1234126-ABC1346DEADBEEF");
final String serialized = serializer.serialize(original);
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/impl/EncodingTicketServiceTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/impl/EncodingTicketServiceTest.java
index a05bc01f7..523b4cd06 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/impl/EncodingTicketServiceTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/impl/EncodingTicketServiceTest.java
@@ -104,9 +104,12 @@ public class EncodingTicketServiceTest {
@Test
public void testCreateRemoveServiceTicketInvalid() throws Exception {
+ final Instant expiry = Instant.now().plusSeconds(5);
+ final String nowString = String.valueOf(System.currentTimeMillis());
+ assert expiry!=null && nowString!=null;
final ServiceTicket st1 = ticketService.createServiceTicket(
- String.valueOf(System.currentTimeMillis()),
- Instant.now().plusSeconds(5),
+ nowString,
+ expiry,
"https://www.example.com/s2/",
newState("bartholomew"),
true);
@@ -122,6 +125,7 @@ public class EncodingTicketServiceTest {
+ "8m2!3d37.3554696!4d-80.537265";
final Instant expiry = Instant.now().plusSeconds(5);
final String id = String.valueOf(System.currentTimeMillis());
+ assert expiry!=null && id!=null;
final ServiceTicket st1 = ticketService.createServiceTicket(id, expiry, service, state, true);
assertNotNull(st1);
assertTrue(st1.getId().matches("ST-[A-Za-z0-9]+-*"));
@@ -157,7 +161,7 @@ public class EncodingTicketServiceTest {
final String service = "https://www.example.com/s2/";
final Instant expiry = Instant.now().plusSeconds(5);
final String id = String.valueOf(System.currentTimeMillis());
- assert id != null && expiry!=null;
+ assert id != null && expiry!=null && pgt!=null;
final ProxyTicket pt1 = ticketService.createProxyTicket(id, expiry, pgt, service);
assert pt1 != null;
assertNull(ticketService.removeProxyTicket("PT-123"));
@@ -168,9 +172,12 @@ public class EncodingTicketServiceTest {
final String principal = "aleph";
final String serviceUrl = "https://www.example.com/service1";
final String pgtUrl = "https://www.example.com/pgt1";
+ final Instant then = Instant.now().plusSeconds(5);
+ final String nowString = String.valueOf(System.currentTimeMillis());
+ assert then != null && nowString!=null;;
final ServiceTicket st = ticketService.createServiceTicket(
- String.valueOf(System.currentTimeMillis()),
- Instant.now().plusSeconds(5),
+ nowString,
+ then,
serviceUrl,
newState(principal),
true);
@@ -197,16 +204,19 @@ public class EncodingTicketServiceTest {
assertNotNull(ticketService.fetchProxyGrantingTicket(pgt.getId()));
}
- private TicketState newState(final String principal) {
- return new TicketState(sessionIdGenerator.generateIdentifier(), principal,
- Instant.now().truncatedTo(ChronoUnit.MILLIS), "authn/Password");
+ @Nonnull private TicketState newState(@Nonnull final String principal) {
+ final Instant truncatedNow = Instant.now().truncatedTo(ChronoUnit.MILLIS);
+ assert truncatedNow!=null;
+ return new TicketState(sessionIdGenerator.generateIdentifier(), principal, truncatedNow, "authn/Password");
}
- private ProxyGrantingTicket newPGT(@Nonnull final TicketState state, @Nonnull final String service) {
+ @Nonnull private ProxyGrantingTicket newPGT(@Nonnull final TicketState state, @Nonnull final String service) {
+ final Instant then = Instant.now().plusSeconds(300);
+ assert then != null;
final ProxyGrantingTicket pgt = new ProxyGrantingTicket(
pgtIdGenerator.generateIdentifier(),
service,
- Instant.now().plusSeconds(300),
+ then,
service + "/proxy",
"PGT-12345");
pgt.setTicketState(state);
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/impl/SimpleTicketServiceTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/impl/SimpleTicketServiceTest.java
index d65410181..d55c94cdf 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/impl/SimpleTicketServiceTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/impl/SimpleTicketServiceTest.java
@@ -31,6 +31,8 @@ import static org.testng.Assert.*;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
+import javax.annotation.Nonnull;
+
/**
* Unit test for {@link SimpleTicketService} class.
*
@@ -113,16 +115,16 @@ public class SimpleTicketServiceTest {
assertNull(ticketService.removeProxyTicket(pt.getId()));
}
- private ServiceTicket createServiceTicket() {
+ @Nonnull private ServiceTicket createServiceTicket() {
return ticketService.createServiceTicket(
new TicketIdentifierGenerationStrategy("ST", 25).generateIdentifier(),
expiry(),
TEST_SERVICE,
- new TicketState(TEST_SESSION_ID, "bob", Instant.now().truncatedTo(ChronoUnit.MILLIS), "Password"),
+ new TicketState(TEST_SESSION_ID, "bob", expiry(), "Password"),
false);
}
- private ProxyGrantingTicket createProxyGrantingTicket() {
+ @Nonnull private ProxyGrantingTicket createProxyGrantingTicket() {
return ticketService.createProxyGrantingTicket(
new TicketIdentifierGenerationStrategy("PGT", 50).generateIdentifier(),
expiry(),
@@ -130,7 +132,9 @@ public class SimpleTicketServiceTest {
TEST_PGTURL);
}
- private static Instant expiry() {
- return Instant.now().plusSeconds(10).truncatedTo(ChronoUnit.MILLIS);
+ @Nonnull private static Instant expiry() {
+ final Instant result = Instant.now().plusSeconds(10).truncatedTo(ChronoUnit.MILLIS);
+ assert result != null;
+ return result;
}
}
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ProxyGrantingTicketSerializerTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ProxyGrantingTicketSerializerTest.java
index 19261fc7d..961074ac5 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ProxyGrantingTicketSerializerTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ProxyGrantingTicketSerializerTest.java
@@ -26,6 +26,8 @@ import static org.testng.Assert.*;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
+import javax.annotation.Nonnull;
+
/**
* Unit test for {@link ProxyGrantingTicketSerializer}.
*/
@@ -39,7 +41,7 @@ public class ProxyGrantingTicketSerializerTest {
final ProxyGrantingTicket pgt1 = new ProxyGrantingTicket(
"ST-0123456789-9d22c36953a31fd12f12d30d76b344d3",
"https://nobody.example.org",
- Instant.now().truncatedTo(ChronoUnit.MILLIS),
+ expiry(),
"https://proxy1.example.org",
null);
final String serialized = serializer.serialize(pgt1);
@@ -57,11 +59,11 @@ public class ProxyGrantingTicketSerializerTest {
final ProxyGrantingTicket pgt1 = new ProxyGrantingTicket(
"ST-0123456789-fbca86ba09d1be7ec3ac17e6f372be87",
"https://nobody.example.org",
- Instant.now().truncatedTo(ChronoUnit.MILLIS),
+ expiry(),
"https://proxy2.example.org",
null);
pgt1.setTicketState(new TicketState("idpsess-1e663b80e6c6b2b7ae778cb3ea265", "bob",
- Instant.now().truncatedTo(ChronoUnit.MILLIS), "Password"));
+ expiry(), "Password"));
final String serialized = serializer.serialize(pgt1);
final ProxyGrantingTicket pgt2 = serializer.deserialize(1, "notused", pgt1.getId(), serialized, null);
assertEquals(pgt2.getId(), pgt1.getId());
@@ -77,11 +79,11 @@ public class ProxyGrantingTicketSerializerTest {
final ProxyGrantingTicket pgt1 = new ProxyGrantingTicket(
"ST-0123456789-fbca86ba09d1be7ec3ac17e6f372be87",
"https://nobody.example.org",
- Instant.now().truncatedTo(ChronoUnit.MILLIS),
+ expiry(),
"https://proxy3.example.org",
"PGT-0987654321-0040c390cf67e571c7e12fcc78fc0cb3");
pgt1.setTicketState(new TicketState("idpsess-6d986af1280b7f52f9e7da434cfd0", "bob",
- Instant.now().truncatedTo(ChronoUnit.MILLIS), "Password"));
+ expiry(), "Password"));
final String serialized = serializer.serialize(pgt1);
final ProxyGrantingTicket pgt2 = serializer.deserialize(1, "notused", pgt1.getId(), serialized, null);
assertEquals(pgt2.getId(), pgt1.getId());
@@ -92,4 +94,10 @@ public class ProxyGrantingTicketSerializerTest {
assertEquals(pgt2.getTicketState(), pgt1.getTicketState());
}
+ @Nonnull private static Instant expiry() {
+ final Instant result = Instant.now().plusSeconds(10).truncatedTo(ChronoUnit.MILLIS);
+ assert result != null;
+ return result;
+ }
+
}
\ No newline at end of file
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ProxyTicketSerializerTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ProxyTicketSerializerTest.java
index fb8de7fb8..5f2f6e11c 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ProxyTicketSerializerTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ProxyTicketSerializerTest.java
@@ -26,6 +26,8 @@ import static org.testng.Assert.*;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
+import javax.annotation.Nonnull;
+
/**
* Unit test for {@link ProxyTicketSerializer}.
*/
@@ -39,7 +41,7 @@ public class ProxyTicketSerializerTest {
final ProxyTicket pt1 = new ProxyTicket(
"ST-0123456789-6027f6e93c11b1f587857ee0e7689c27",
"https://nobody.example.org",
- Instant.now().truncatedTo(ChronoUnit.MILLIS),
+ expiry(),
"PGT-0123456789-87182857dcbc70f8aa2e0ec87ec3e707");
final String serialized = serializer.serialize(pt1);
final ProxyTicket pt2 = serializer.deserialize(1, "notused", pt1.getId(), serialized, null);
@@ -55,10 +57,10 @@ public class ProxyTicketSerializerTest {
final ProxyTicket pt1 = new ProxyTicket(
"ST-0123456789-e1e212143527d57053e7a72d75b3ccd6",
"https://nobody.example.org",
- Instant.now().truncatedTo(ChronoUnit.MILLIS),
+ expiry(),
"PGT-0123456789-c0dddd0f73b9494f7fe0b549e8c28002");
pt1.setTicketState(new TicketState("idpsess-6ebae421b142adb35a3a6303116c3f", "bob",
- Instant.now().truncatedTo(ChronoUnit.MILLIS), "Password"));
+ expiry(), "Password"));
final String serialized = serializer.serialize(pt1);
final ProxyTicket pt2 = serializer.deserialize(1, "notused", pt1.getId(), serialized, null);
assertEquals(pt2.getId(), pt1.getId());
@@ -67,4 +69,9 @@ public class ProxyTicketSerializerTest {
assertEquals(pt2.getPgtId(), pt1.getPgtId());
assertEquals(pt2.getTicketState(), pt1.getTicketState());
}
+ @Nonnull private static Instant expiry() {
+ final Instant result = Instant.now().plusSeconds(10).truncatedTo(ChronoUnit.MILLIS);
+ assert result != null;
+ return result;
+ }
}
\ No newline at end of file
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ServiceTicketSerializerTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ServiceTicketSerializerTest.java
index 85c86aa4c..b62aa2409 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ServiceTicketSerializerTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/serialization/impl/ServiceTicketSerializerTest.java
@@ -28,6 +28,8 @@ import static org.testng.Assert.*;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
+import javax.annotation.Nonnull;
+
/**
* Unit test for {@link ServiceTicketSerializer}.
*/
@@ -41,7 +43,7 @@ public class ServiceTicketSerializerTest {
final ServiceTicket st1 = new ServiceTicket(
"ST-0123456789-616ea1550eef862761e5931bdccaaba0",
"https://nobody.example.org",
- Instant.now().truncatedTo(ChronoUnit.MILLIS),
+ expiry(),
true);
final String serialized = serializer.serialize(st1);
final ServiceTicket st2 = serializer.deserialize(1, "notused", st1.getId(), serialized, null);
@@ -57,10 +59,10 @@ public class ServiceTicketSerializerTest {
final ServiceTicket st1 = new ServiceTicket(
"ST-0123456789-e6342d467a4414e599aa3c323528e96f",
"https://nobody.example.org",
- Instant.now().truncatedTo(ChronoUnit.MILLIS),
+ expiry(),
true);
st1.setTicketState(new TicketState("idpsess-d2db22058dc178d3b917363859e", "bob",
- Instant.now().truncatedTo(ChronoUnit.MILLIS), "Password"));
+ expiry(), "Password"));
final String serialized = serializer.serialize(st1);
final ServiceTicket st2 = serializer.deserialize(1, "notused", st1.getId(), serialized, null);
assertEquals(st2.getId(), st1.getId());
@@ -75,10 +77,10 @@ public class ServiceTicketSerializerTest {
final ServiceTicket st1 = new ServiceTicket(
"ST-0123456789-e6342d467a4414e599aa3c323528e96f",
"https://nobody.example.org",
- Instant.now().truncatedTo(ChronoUnit.MILLIS),
+ expiry(),
true);
final TicketState state = new TicketState("idpsess-d2db22058dc178d3b917363859e", "bob",
- Instant.now().truncatedTo(ChronoUnit.MILLIS), "Password");
+ expiry(), "Password");
state.setConsentedAttributeIds(CollectionSupport.setOf("foo", "bar"));
st1.setTicketState(state);
final String serialized = serializer.serialize(st1);
@@ -95,10 +97,10 @@ public class ServiceTicketSerializerTest {
final ServiceTicket st1 = new ServiceTicket(
"ST-0123456789-e6342d467a4414e599aa3c323528e96f",
"https://nobody.example.org",
- Instant.now().truncatedTo(ChronoUnit.MILLIS),
+ expiry(),
true);
final TicketState state = new TicketState("idpsess-d2db22058dc178d3b917363859e", "bob",
- Instant.now().truncatedTo(ChronoUnit.MILLIS), "Password");
+ expiry(), "Password");
state.setConsentedAttributeIds(CollectionSupport.emptySet());
st1.setTicketState(state);
final String serialized = serializer.serialize(st1);
@@ -109,5 +111,10 @@ public class ServiceTicketSerializerTest {
assertEquals(st2.isRenew(), st1.isRenew());
assertEquals(st2.getTicketState(), st1.getTicketState());
}
+ @Nonnull private static Instant expiry() {
+ final Instant result = Instant.now().plusSeconds(10).truncatedTo(ChronoUnit.MILLIS);
+ assert result != null;
+ return result;
+ }
}
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list