[java-identity-provider] 02/02: Null cleanup.
Scott Cantor
cantor.2 at osu.edu
Mon Jan 23 14:13:25 UTC 2023
This is an automated email from the git hooks/post-receive script.
scantor 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=d79b4587f65c0b0696acf954ca2655f923cef197
commit d79b4587f65c0b0696acf954ca2655f923cef197
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Jan 23 09:13:19 2023 -0500
Null cleanup.
---
.../shibboleth/idp/session/AbstractIdPSession.java | 13 +++---
.../idp/session/AbstractSPSessionSerializer.java | 4 +-
.../idp/session/SPSessionSerializerRegistry.java | 5 +-
.../navigate/CanonicalUsernameLookupStrategy.java | 8 +++-
.../navigate/SessionContextIDLookupFunction.java | 8 +++-
.../SessionContextPrincipalLookupFunction.java | 8 +++-
.../idp/session/logic/IPRangeBiPredicate.java | 6 +--
.../LogoutPropagationFlowDescriptorSelector.java | 7 ++-
.../shibboleth/idp/session/BasicSPSessionTest.java | 9 +---
.../net/shibboleth/idp/session/IdPSessionTest.java | 53 ++--------------------
10 files changed, 45 insertions(+), 76 deletions(-)
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/AbstractIdPSession.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/AbstractIdPSession.java
index 85d8fbbb3..02df8fdaf 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/AbstractIdPSession.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/AbstractIdPSession.java
@@ -36,11 +36,12 @@ import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.primitive.StringSupport;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.google.common.base.MoreObjects;
@@ -254,12 +255,11 @@ public abstract class AbstractIdPSession implements IdPSession {
/** {@inheritDoc} */
@Nonnull @NonnullElements @NotLive @Unmodifiable public Set<AuthenticationResult> getAuthenticationResults() {
- return Set.copyOf(
- authenticationResults.values()
+ return authenticationResults.values()
.stream()
.filter(Optional::isPresent)
.map(Optional::orElseThrow)
- .collect(Collectors.toUnmodifiableSet()));
+ .collect(Collectors.toUnmodifiableSet());
}
/** {@inheritDoc} */
@@ -328,12 +328,11 @@ public abstract class AbstractIdPSession implements IdPSession {
/** {@inheritDoc} */
@Override
@Nonnull @NonnullElements @NotLive @Unmodifiable public Set<SPSession> getSPSessions() {
- return Set.copyOf(
- spSessions.values()
+ return spSessions.values()
.stream()
.filter(Optional::isPresent)
.map(Optional::orElseThrow)
- .collect(Collectors.toUnmodifiableSet()));
+ .collect(Collectors.toUnmodifiableSet());
}
/** {@inheritDoc} */
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/AbstractSPSessionSerializer.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/AbstractSPSessionSerializer.java
index b7431954b..40968fd7a 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/AbstractSPSessionSerializer.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/AbstractSPSessionSerializer.java
@@ -36,10 +36,10 @@ import javax.json.stream.JsonGenerator;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.component.AbstractInitializableComponent;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
import org.opensaml.storage.StorageSerializer;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Base class for {@link SPSession} serializers that handles data common to all such objects.
@@ -109,6 +109,8 @@ public abstract class AbstractSPSessionSerializer extends AbstractInitializableC
final String serviceId = obj.getString(SERVICE_ID_FIELD);
final Instant creation = Instant.ofEpochMilli(obj.getJsonNumber(CREATION_INSTANT_FIELD).longValueExact());
+ assert serviceId != null;
+ assert creation != null;
return doDeserialize(obj, serviceId, creation, Instant.ofEpochMilli(expiration).minus(expirationOffset));
} catch (final NullPointerException | ClassCastException | ArithmeticException | JsonException e) {
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java
index f81177f8d..2f5925e31 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/SPSessionSerializerRegistry.java
@@ -26,13 +26,14 @@ import javax.annotation.Nullable;
import org.opensaml.storage.StorageSerializer;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
import org.springframework.beans.factory.annotation.Autowired;
import net.shibboleth.shared.annotation.ParameterName;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.component.AbstractInitializableComponent;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* A registry of mappings between a {@link SPSession} class and a corresponding {@link StorageSerializer}
@@ -119,7 +120,7 @@ public final class SPSessionSerializerRegistry extends AbstractInitializableComp
@Nonnull private final Class<T> sessionType;
/** Serializer. */
- @Nonnull private final StorageSerializer<T> serializer;
+ @Nullable private final StorageSerializer<T> serializer;
/**
* Constructor.
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/CanonicalUsernameLookupStrategy.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/CanonicalUsernameLookupStrategy.java
index cf7a4fcf9..9e12928a0 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/CanonicalUsernameLookupStrategy.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/CanonicalUsernameLookupStrategy.java
@@ -22,6 +22,7 @@ import java.util.function.Function;
import org.opensaml.profile.context.ProfileRequestContext;
import net.shibboleth.idp.authn.context.SubjectCanonicalizationContext;
+import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.context.SessionContext;
/**
@@ -41,8 +42,11 @@ public class CanonicalUsernameLookupStrategy implements Function<ProfileRequestC
}
final SessionContext sessionContext = input.getSubcontext(SessionContext.class);
- if (sessionContext != null && sessionContext.getIdPSession() != null) {
- return sessionContext.getIdPSession().getPrincipalName();
+ if (sessionContext != null) {
+ final IdPSession idpSession = sessionContext.getIdPSession();
+ if (idpSession != null) {
+ return idpSession.getPrincipalName();
+ }
}
}
return null;
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/SessionContextIDLookupFunction.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/SessionContextIDLookupFunction.java
index e80be4932..760593e66 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/SessionContextIDLookupFunction.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/SessionContextIDLookupFunction.java
@@ -19,6 +19,7 @@ package net.shibboleth.idp.session.context.navigate;
import javax.annotation.Nullable;
+import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.context.SessionContext;
import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
@@ -29,8 +30,11 @@ public class SessionContextIDLookupFunction implements ContextDataLookupFunction
/** {@inheritDoc} */
@Nullable public String apply(@Nullable final SessionContext input) {
- if (input != null && input.getIdPSession() != null) {
- return input.getIdPSession().getId();
+ if (input != null) {
+ final IdPSession idpSession = input.getIdPSession();
+ if (idpSession != null) {
+ return idpSession.getId();
+ }
}
return null;
}
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/SessionContextPrincipalLookupFunction.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/SessionContextPrincipalLookupFunction.java
index 6cd8f4756..d6f383adf 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/SessionContextPrincipalLookupFunction.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/context/navigate/SessionContextPrincipalLookupFunction.java
@@ -19,6 +19,7 @@ package net.shibboleth.idp.session.context.navigate;
import javax.annotation.Nullable;
+import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.context.SessionContext;
import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
@@ -29,8 +30,11 @@ public class SessionContextPrincipalLookupFunction implements ContextDataLookupF
/** {@inheritDoc} */
@Nullable public String apply(@Nullable final SessionContext input) {
- if (input != null && input.getIdPSession() != null) {
- return input.getIdPSession().getPrincipalName();
+ if (input != null) {
+ final IdPSession idpSession = input.getIdPSession();
+ if (idpSession != null) {
+ return idpSession.getPrincipalName();
+ }
}
return null;
}
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/logic/IPRangeBiPredicate.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/logic/IPRangeBiPredicate.java
index 389ec4aef..12560b9cc 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/logic/IPRangeBiPredicate.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/logic/IPRangeBiPredicate.java
@@ -18,7 +18,6 @@
package net.shibboleth.idp.session.logic;
import java.util.Collection;
-import java.util.List;
import java.util.function.BiPredicate;
import javax.annotation.Nonnull;
@@ -27,6 +26,7 @@ import javax.annotation.Nullable;
import com.google.common.net.InetAddresses;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.net.IPRange;
@@ -38,7 +38,7 @@ public class IPRangeBiPredicate implements BiPredicate<String,String> {
/** Constructor. */
IPRangeBiPredicate() {
- addressRanges = List.of();
+ addressRanges = CollectionSupport.emptyList();
}
/**
@@ -49,7 +49,7 @@ public class IPRangeBiPredicate implements BiPredicate<String,String> {
public void setRanges(@Nonnull @NonnullElements final Collection<IPRange> ranges) {
Constraint.isNotNull(ranges, "Address range collection cannot be null");
- addressRanges = List.copyOf(ranges);
+ addressRanges = CollectionSupport.copyToList(ranges);
}
/** {@inheritDoc} */
diff --git a/idp-session-api/src/main/java/net/shibboleth/idp/session/logic/LogoutPropagationFlowDescriptorSelector.java b/idp-session-api/src/main/java/net/shibboleth/idp/session/logic/LogoutPropagationFlowDescriptorSelector.java
index 81ec047a8..88f7c9f74 100644
--- a/idp-session-api/src/main/java/net/shibboleth/idp/session/logic/LogoutPropagationFlowDescriptorSelector.java
+++ b/idp-session-api/src/main/java/net/shibboleth/idp/session/logic/LogoutPropagationFlowDescriptorSelector.java
@@ -27,6 +27,7 @@ import net.shibboleth.idp.session.LogoutPropagationFlowDescriptor;
import net.shibboleth.idp.session.SPSession;
import net.shibboleth.shared.annotation.ParameterName;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.logic.Constraint;
/**
@@ -44,12 +45,16 @@ public class LogoutPropagationFlowDescriptorSelector implements Function<SPSessi
*/
public LogoutPropagationFlowDescriptorSelector(
@Nonnull @NonnullElements @ParameterName(name="flows") final List<LogoutPropagationFlowDescriptor> flows) {
- availableFlows = List.copyOf(Constraint.isNotNull(flows, "Flows cannot be null"));
+ availableFlows = CollectionSupport.copyToList(Constraint.isNotNull(flows, "Flows cannot be null"));
}
/** {@inheritDoc} */
@Nullable public LogoutPropagationFlowDescriptor apply(@Nullable final SPSession input) {
+ if (input == null) {
+ return null;
+ }
+
for (final LogoutPropagationFlowDescriptor flowDescriptor : availableFlows) {
if (flowDescriptor.isSupported(input)) {
return flowDescriptor;
diff --git a/idp-session-api/src/test/java/net/shibboleth/idp/session/BasicSPSessionTest.java b/idp-session-api/src/test/java/net/shibboleth/idp/session/BasicSPSessionTest.java
index 5424fc356..eb7159ff8 100644
--- a/idp-session-api/src/test/java/net/shibboleth/idp/session/BasicSPSessionTest.java
+++ b/idp-session-api/src/test/java/net/shibboleth/idp/session/BasicSPSessionTest.java
@@ -43,13 +43,6 @@ public class BasicSPSessionTest {
Assert.assertTrue(session.getCreationInstant().isAfter(start));
Assert.assertTrue(session.getExpirationInstant().isAfter(session.getCreationInstant()));
- try {
- new BasicSPSession(null, Instant.ofEpochMilli(0), Instant.ofEpochMilli(0));
- Assert.fail();
- } catch (ConstraintViolationException e) {
-
- }
-
try {
new BasicSPSession("", Instant.ofEpochMilli(0), Instant.ofEpochMilli(0));
Assert.fail();
@@ -65,4 +58,4 @@ public class BasicSPSessionTest {
}
}
-}
+}
\ No newline at end of file
diff --git a/idp-session-api/src/test/java/net/shibboleth/idp/session/IdPSessionTest.java b/idp-session-api/src/test/java/net/shibboleth/idp/session/IdPSessionTest.java
index a1728d518..69e97ef10 100644
--- a/idp-session-api/src/test/java/net/shibboleth/idp/session/IdPSessionTest.java
+++ b/idp-session-api/src/test/java/net/shibboleth/idp/session/IdPSessionTest.java
@@ -23,6 +23,8 @@ import net.shibboleth.shared.logic.ConstraintViolationException;
import java.time.Instant;
+import javax.annotation.Nonnull;
+
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -48,13 +50,6 @@ public class IdPSessionTest {
Assert.assertNotNull(session.getSPSessions());
Assert.assertFalse(session.getSPSessions().iterator().hasNext());
- try {
- new DummyIdPSession(null, null);
- Assert.fail();
- } catch (ConstraintViolationException e) {
-
- }
-
try {
new DummyIdPSession("", "");
Assert.fail();
@@ -68,13 +63,6 @@ public class IdPSessionTest {
} catch (ConstraintViolationException e) {
}
-
- try {
- new DummyIdPSession("test", null);
- Assert.fail();
- } catch (ConstraintViolationException e) {
-
- }
}
/**
@@ -149,19 +137,6 @@ public class IdPSessionTest {
Assert.assertTrue(session.getSPSessions().contains(svcSession3));
Assert.assertEquals(session.getSPSession("svc3"), svcSession3);
- try {
- session.addSPSession(null);
- Assert.fail();
- } catch (ConstraintViolationException e) {
- Assert.assertEquals(session.getSPSessions().size(), 3);
- Assert.assertTrue(session.getSPSessions().contains(svcSession1));
- Assert.assertEquals(session.getSPSession("svc1"), svcSession1);
- Assert.assertTrue(session.getSPSessions().contains(svcSession2));
- Assert.assertEquals(session.getSPSession("svc2"), svcSession2);
- Assert.assertTrue(session.getSPSessions().contains(svcSession3));
- Assert.assertEquals(session.getSPSession("svc3"), svcSession3);
- }
-
session.addSPSession(svcSession1);
Assert.assertEquals(session.getSPSessions().size(), 3);
Assert.assertTrue(session.getSPSessions().contains(svcSession1));
@@ -195,16 +170,6 @@ public class IdPSessionTest {
Assert.assertFalse(session.getSPSessions().contains(svcSession1));
Assert.assertTrue(session.getSPSessions().contains(svcSession2));
Assert.assertEquals(session.getSPSession("svc2"), svcSession2);
-
- try {
- session.removeSPSession(null);
- Assert.fail();
- } catch (ConstraintViolationException e) {
- Assert.assertEquals(session.getSPSessions().size(), 1);
- Assert.assertFalse(session.getSPSessions().contains(svcSession1));
- Assert.assertTrue(session.getSPSessions().contains(svcSession2));
- Assert.assertEquals(session.getSPSession("svc2"), svcSession2);
- }
}
/**
@@ -233,15 +198,6 @@ public class IdPSessionTest {
Assert.assertEquals(session.getAuthenticationResults().size(), 1);
Assert.assertTrue(session.getAuthenticationResults().contains(event1));
Assert.assertEquals(session.getAuthenticationResult("foo"), event1);
-
- try {
- session.removeAuthenticationResult(null);
- Assert.fail();
- } catch (ConstraintViolationException e) {
- Assert.assertEquals(session.getAuthenticationResults().size(), 1);
- Assert.assertTrue(session.getAuthenticationResults().contains(event1));
- Assert.assertEquals(session.getAuthenticationResult("foo"), event1);
- }
}
/**
@@ -255,12 +211,13 @@ public class IdPSessionTest {
* @param sessionId ...
* @param canonicalName ...
*/
- public DummyIdPSession(String sessionId, String canonicalName) {
+ public DummyIdPSession(@Nonnull final String sessionId, @Nonnull final String canonicalName) {
super(sessionId, canonicalName, Instant.now());
}
/** {@inheritDoc} */
- public void updateAuthenticationResultActivity(AuthenticationResult result) throws SessionException {
+ public void updateAuthenticationResultActivity(@Nonnull final AuthenticationResult result)
+ throws SessionException {
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list