[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