[java-identity-provider] branch main updated: Null handling: use the new null-safe version of Arrays.toList()
Rod Widdowson
rdw at steadingsoftware.com
Wed Mar 8 15:10:47 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=4837c973d75f88c3a0dabbca96eeee144500c0e3
The following commit(s) were added to refs/heads/main by this push:
new 4837c973d Null handling: use the new null-safe version of Arrays.toList()
4837c973d is described below
commit 4837c973d75f88c3a0dabbca96eeee144500c0e3
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed Mar 8 15:06:50 2023 +0000
Null handling: use the new null-safe version of Arrays.toList()
Also do some drive by clean up.
---
.../authn/AuthenticationFlowDescriptorTest.java | 26 ++++++++++-------
.../impl/StorageBackedAccountLockoutManager.java | 13 ++-------
.../CASScopedStringAttributeTranscoderTest.java | 2 +-
.../impl/CASStringAttributeTranscoderTest.java | 4 +--
.../proxy/impl/HttpClientProxyValidatorTest.java | 7 +++--
.../PathInfoSupportingFlowUrlHandlerTest.java | 15 +++++-----
.../impl/tests/FinalizeAuthenticationTest.java | 34 ++++++++++------------
.../session/impl/SessionManagerBaseTestCase.java | 2 +-
.../UpdateSessionWithAuthenticationResultTest.java | 4 ++-
9 files changed, 53 insertions(+), 54 deletions(-)
diff --git a/idp-authn-api/src/test/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptorTest.java b/idp-authn-api/src/test/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptorTest.java
index a49c65f41..4b2f0fa1a 100644
--- a/idp-authn-api/src/test/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptorTest.java
+++ b/idp-authn-api/src/test/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptorTest.java
@@ -18,15 +18,15 @@
package net.shibboleth.idp.authn;
import java.time.Duration;
-import java.util.Arrays;
-
-import net.shibboleth.idp.authn.principal.UsernamePrincipal;
-import net.shibboleth.shared.logic.ConstraintViolationException;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import net.shibboleth.idp.authn.principal.UsernamePrincipal;
+import net.shibboleth.shared.collection.CollectionSupport;
+import net.shibboleth.shared.logic.ConstraintViolationException;
+
/** {@link AuthenticationFlowDescriptor} unit test. */
public class AuthenticationFlowDescriptorTest {
@@ -60,11 +60,16 @@ public class AuthenticationFlowDescriptorTest {
/** Tests mutating inactivity timeout. */
@Test public void testInactivityTimeout() {
- descriptor.setInactivityTimeout(Duration.ofMillis(10));
+ final Duration tenms = Duration.ofMillis(10);
+ assert tenms!=null;
+
+ descriptor.setInactivityTimeout(tenms);
Assert.assertEquals(descriptor.getInactivityTimeout(), Duration.ofMillis(10));
try {
- descriptor.setInactivityTimeout(Duration.ofMillis(-10));
+ final Duration negTenms = Duration.ofMillis(-10);
+ assert negTenms!=null;
+ descriptor.setInactivityTimeout(negTenms);
Assert.fail();
} catch (ConstraintViolationException e) {
Assert.assertEquals(descriptor.getInactivityTimeout(), Duration.ofMillis(10));
@@ -98,11 +103,11 @@ public class AuthenticationFlowDescriptorTest {
UsernamePrincipal bar = new UsernamePrincipal("bar");
UsernamePrincipal baz = new UsernamePrincipal("baz");
- descriptor.setSupportedPrincipals(Arrays.asList(foo));
+ descriptor.setSupportedPrincipals(CollectionSupport.arrayAsList(foo));
Assert.assertEquals(descriptor.getSupportedPrincipals(UsernamePrincipal.class).size(), 1);
Assert.assertTrue(descriptor.getSupportedPrincipals(UsernamePrincipal.class).contains(foo));
- descriptor.setSupportedPrincipals(Arrays.asList(foo, bar));
+ descriptor.setSupportedPrincipals(CollectionSupport.arrayAsList(foo, bar));
Assert.assertEquals(descriptor.getSupportedPrincipals(UsernamePrincipal.class).size(), 2);
Assert.assertTrue(descriptor.getSupportedPrincipals(UsernamePrincipal.class).contains(foo));
Assert.assertTrue(descriptor.getSupportedPrincipals(UsernamePrincipal.class).contains(bar));
@@ -131,8 +136,9 @@ public class AuthenticationFlowDescriptorTest {
Assert.assertTrue(descriptor.isResultActive(result));
Thread.sleep(20);
-
- descriptor.setInactivityTimeout(Duration.ofMillis(10));
+ final Duration tenms = Duration.ofMillis(10);
+ assert tenms!=null;
+ descriptor.setInactivityTimeout(tenms);
Assert.assertFalse(descriptor.isResultActive(result));
result.setLastActivityInstantToNow();
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/StorageBackedAccountLockoutManager.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/StorageBackedAccountLockoutManager.java
index bac543328..04512b0b2 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/StorageBackedAccountLockoutManager.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/StorageBackedAccountLockoutManager.java
@@ -78,16 +78,9 @@ public class StorageBackedAccountLockoutManager extends AbstractIdentifiableInit
/** Constructor. */
public StorageBackedAccountLockoutManager() {
- setMaxAttempts(5);
- // this paradigm proves to the null checkee that these fields are non null
- assert maxAttemptsLookupStrategy != null;
- maxAttemptsLookupStrategy = maxAttemptsLookupStrategy;
- setCounterInterval(Duration.ofMinutes(5));
- assert counterIntervalLookupStrategy != null;
- counterIntervalLookupStrategy = counterIntervalLookupStrategy;
- setLockoutDuration(Duration.ofMinutes(5));
- assert lockoutDurationLookupStrategy != null;
- lockoutDurationLookupStrategy = lockoutDurationLookupStrategy;
+ maxAttemptsLookupStrategy = FunctionSupport.constant(5);
+ counterIntervalLookupStrategy = FunctionSupport.constant(Duration.ofMinutes(5));
+ lockoutDurationLookupStrategy = FunctionSupport.constant(Duration.ofMinutes(5));
}
/**
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASScopedStringAttributeTranscoderTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASScopedStringAttributeTranscoderTest.java
index 5b1f39a94..9a5238040 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASScopedStringAttributeTranscoderTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASScopedStringAttributeTranscoderTest.java
@@ -144,7 +144,7 @@ public class CASScopedStringAttributeTranscoderTest {
final Collection<TranscodingRule> rulesets = registry.getTranscodingRules(inputAttribute, Attribute.class);
Assert.assertEquals(rulesets.size(), 1);
final TranscodingRule ruleset = rulesets.iterator().next();
-
+ assert ruleset!=null;
TranscoderSupport.getTranscoder(ruleset).encode(null, inputAttribute, Attribute.class, ruleset);
}
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASStringAttributeTranscoderTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASStringAttributeTranscoderTest.java
index e941bc8b0..f9990586c 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASStringAttributeTranscoderTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/attribute/transcoding/impl/CASStringAttributeTranscoderTest.java
@@ -108,7 +108,7 @@ public class CASStringAttributeTranscoderTest {
final Collection<TranscodingRule> rulesets = registry.getTranscodingRules(casAttribute);
Assert.assertEquals(rulesets.size(), 1);
final TranscodingRule ruleset = rulesets.iterator().next();
-
+ assert ruleset!=null;
final IdPAttribute attr = TranscoderSupport.getTranscoder(ruleset).decode(null, casAttribute, ruleset);
assert attr!= null;
@@ -201,7 +201,7 @@ public class CASStringAttributeTranscoderTest {
final Collection<TranscodingRule> rulesets = registry.getTranscodingRules(inputAttribute, Attribute.class);
Assert.assertEquals(rulesets.size(), 1);
final TranscodingRule ruleset = rulesets.iterator().next();
-
+ assert ruleset!=null;
final Attribute attr = TranscoderSupport.<Attribute>getTranscoder(ruleset).encode(
null, inputAttribute, Attribute.class, ruleset);
diff --git a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidatorTest.java b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidatorTest.java
index 2cb4c780a..a4bd19a46 100644
--- a/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidatorTest.java
+++ b/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidatorTest.java
@@ -35,6 +35,7 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
+import javax.annotation.Nonnull;
import javax.security.auth.login.FailedLoginException;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
@@ -147,7 +148,7 @@ public class HttpClientProxyValidatorTest extends AbstractFlowActionTest {
@Test(dataProvider = "data")
public void testAuthenticate(
- final String serviceURL, final String keyStorePath, final int status, final Exception expected)
+ @Nonnull final String serviceURL, final String keyStorePath, final int status, final Exception expected)
throws Exception {
Server server = null;
try {
@@ -170,7 +171,7 @@ public class HttpClientProxyValidatorTest extends AbstractFlowActionTest {
}
}
- private Server startServer(final String keyStorePath, final Handler handler) {
+ @Nonnull private Server startServer(final String keyStorePath, final Handler handler) {
final Server server = new Server();
final var sslContextFactory = new SslContextFactory.Server();
@@ -230,7 +231,7 @@ public class HttpClientProxyValidatorTest extends AbstractFlowActionTest {
}
}
- private ProfileRequestContext buildProfileRequestContext(final String serviceUrl) {
+ @Nonnull private ProfileRequestContext buildProfileRequestContext(@Nonnull final String serviceUrl) {
final ProfileRequestContext prc = new ProfileRequestContext();
final ProtocolContext<?,?> protoCtx = new ProtocolContext<>();
prc.addSubcontext(protoCtx);
diff --git a/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/support/PathInfoSupportingFlowUrlHandlerTest.java b/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/support/PathInfoSupportingFlowUrlHandlerTest.java
index 381f4960a..1c3d4a1cd 100644
--- a/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/support/PathInfoSupportingFlowUrlHandlerTest.java
+++ b/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/support/PathInfoSupportingFlowUrlHandlerTest.java
@@ -17,14 +17,13 @@
package net.shibboleth.idp.profile.support;
-import java.util.Arrays;
-import java.util.Collections;
-
import org.springframework.mock.web.MockHttpServletRequest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/** {@link PathInfoSupportingFlowUrlHandler} unit test. */
@SuppressWarnings("javadoc")
public class PathInfoSupportingFlowUrlHandlerTest {
@@ -50,27 +49,27 @@ public class PathInfoSupportingFlowUrlHandlerTest {
@Test public void testNoMatch() {
request.setPathInfo("/admin/foo/bar/baz");
- handler.setSupportedFlows(Collections.singletonList("admit/fop"));
+ handler.setSupportedFlows(CollectionSupport.singletonList("admit/fop"));
Assert.assertEquals("admin/foo/bar/baz", handler.getFlowId(request));
}
@Test public void testSuported() {
request.setPathInfo("/admin/foo/bar/baz");
- handler.setSupportedFlows(Collections.singletonList("admin/foo/bar"));
+ handler.setSupportedFlows(CollectionSupport.singletonList("admin/foo/bar"));
Assert.assertEquals("admin/foo/bar", handler.getFlowId(request));
- handler.setSupportedFlows(Collections.singletonList("admin/foo"));
+ handler.setSupportedFlows(CollectionSupport.singletonList("admin/foo"));
Assert.assertEquals("admin/foo", handler.getFlowId(request));
}
@Test public void testOverlapping() {
request.setPathInfo("/admin/foo/bar/baz");
- handler.setSupportedFlows(Arrays.asList("admin/foo/bar", "admin/foo", "admin"));
+ handler.setSupportedFlows(CollectionSupport.arrayAsList("admin/foo/bar", "admin/foo", "admin"));
Assert.assertEquals("admin/foo/bar", handler.getFlowId(request));
- handler.setSupportedFlows(Arrays.asList("admin", "admin/foo", "admin/foo/bar"));
+ handler.setSupportedFlows(CollectionSupport.arrayAsList("admin", "admin/foo", "admin/foo/bar"));
Assert.assertEquals("admin", handler.getFlowId(request));
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/authn/impl/tests/FinalizeAuthenticationTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/authn/impl/tests/FinalizeAuthenticationTest.java
index 3bba3982a..0a110d480 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/authn/impl/tests/FinalizeAuthenticationTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/authn/impl/tests/FinalizeAuthenticationTest.java
@@ -18,12 +18,18 @@
package net.shibboleth.idp.authn.impl.tests;
import java.security.Principal;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import javax.security.auth.Subject;
+import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
+import org.opensaml.profile.context.ProfileRequestContext;
+import org.springframework.webflow.execution.Event;
+import org.springframework.webflow.execution.RequestContext;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
import net.shibboleth.idp.admin.BasicAdministrativeFlowDescriptor;
import net.shibboleth.idp.authn.AuthenticationFlowDescriptor;
import net.shibboleth.idp.authn.AuthenticationResult;
@@ -46,14 +52,6 @@ import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.FunctionSupport;
-import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.springframework.webflow.execution.Event;
-import org.springframework.webflow.execution.RequestContext;
-import org.testng.Assert;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
/** {@link FinalizeAuthentication} unit test. */
@SuppressWarnings("javadoc")
public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
@@ -134,7 +132,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
TestPrincipal.class, "florp", new ExactPrincipalEvalPredicateFactory());
rpCtx.setMatchingPrincipal(new TestPrincipal("bar1"));
rpCtx.setOperator("florp");
- rpCtx.setRequestedPrincipals(Collections.singletonList(new TestPrincipal("bar1")));
+ rpCtx.setRequestedPrincipals(CollectionSupport.singletonList(new TestPrincipal("bar1")));
authCtx.addSubcontext(rpCtx);
final Event event = action.execute(src);
@@ -187,7 +185,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
new ProxyAuthenticationPrincipal(CollectionSupport.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER)));
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
assert authCtx!=null;
- authCtx.setActiveResults(Arrays.asList(active));
+ authCtx.setActiveResults(CollectionSupport.arrayAsList(active));
authCtx.setAuthenticationResult(active);
prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
@@ -216,7 +214,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
final AuthenticationResult active2 = new AuthenticationResult("test2", new Subject());
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
assert authCtx!=null;
- authCtx.setActiveResults(Arrays.asList(active1));
+ authCtx.setActiveResults(CollectionSupport.arrayAsList(active1));
authCtx.setAuthenticationResult(active2);
prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
@@ -237,7 +235,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
assert authCtx!=null;
- authCtx.setActiveResults(Arrays.asList(active));
+ authCtx.setActiveResults(CollectionSupport.arrayAsList(active));
authCtx.setAuthenticationResult(active);
prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
@@ -254,7 +252,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
assert authCtx!=null;
- authCtx.setActiveResults(Arrays.asList(active));
+ authCtx.setActiveResults(CollectionSupport.arrayAsList(active));
authCtx.setAuthenticationResult(active);
prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
@@ -279,7 +277,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
assert authCtx!=null;
- authCtx.setActiveResults(Arrays.asList(active));
+ authCtx.setActiveResults(CollectionSupport.arrayAsList(active));
authCtx.setAuthenticationResult(active);
prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
@@ -303,7 +301,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
assert authCtx!=null;
- authCtx.setActiveResults(Arrays.asList(active));
+ authCtx.setActiveResults(CollectionSupport.arrayAsList(active));
authCtx.setAuthenticationResult(active);
prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
@@ -325,7 +323,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
assert authCtx!=null;
- authCtx.setActiveResults(Arrays.asList(active));
+ authCtx.setActiveResults(CollectionSupport.arrayAsList(active));
authCtx.setAuthenticationResult(active);
prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
diff --git a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/SessionManagerBaseTestCase.java b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/SessionManagerBaseTestCase.java
index 6774153c1..f427282b7 100644
--- a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/SessionManagerBaseTestCase.java
+++ b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/SessionManagerBaseTestCase.java
@@ -43,7 +43,7 @@ public class SessionManagerBaseTestCase extends OpenSAMLInitBaseTestCase {
protected MemoryStorageService storageService;
- protected StorageBackedSessionManager sessionManager;
+ @Nonnull protected StorageBackedSessionManager sessionManager = new StorageBackedSessionManager();
@BeforeClass public void setUp() throws ComponentInitializationException {
diff --git a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResultTest.java b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResultTest.java
index fac192110..df0404102 100644
--- a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResultTest.java
+++ b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/UpdateSessionWithAuthenticationResultTest.java
@@ -33,6 +33,7 @@ import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.SessionException;
import net.shibboleth.idp.session.context.SessionContext;
import net.shibboleth.idp.session.criterion.SessionIdCriterion;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.resolver.CriteriaSet;
import net.shibboleth.shared.resolver.ResolverException;
@@ -81,7 +82,7 @@ public class UpdateSessionWithAuthenticationResultTest extends SessionManagerBas
flowDescriptor.setId("test1");
flowDescriptor.setResultSerializer(resultSerializer);
flowDescriptor.initialize();
- sessionManager.setAuthenticationFlowDescriptors(Arrays.asList(flowDescriptor));
+ sessionManager.setAuthenticationFlowDescriptors(CollectionSupport.arrayAsList(flowDescriptor));
}
@Test public void testNoResult() {
@@ -191,6 +192,7 @@ public class UpdateSessionWithAuthenticationResultTest extends SessionManagerBas
// Limit granularity to milliseconds for storage roundtrip.
final Instant ts = Instant.ofEpochMilli(System.currentTimeMillis()).plusSeconds(300);
+ assert ts!=null;
ar.setLastActivityInstant(ts);
final Event event = action.execute(src);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list