[java-identity-provider] 05/06: IDP-2069 Null handling

Rod Widdowson rdw at steadingsoftware.com
Fri Feb 10 13:50:22 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=de540b03508e14cf6b37d0734afa2b9169e36fb0

commit de540b03508e14cf6b37d0734afa2b9169e36fb0
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu Feb 9 17:03:57 2023 +0000

    IDP-2069 Null handling
    
    https://shibboleth.atlassian.net/browse/IDP-2069
    
    Clean idp-authn-api (but not entirely)
---
 .../idp/cas/attribute/AbstractCASAttributeTranscoder.java         | 3 ++-
 .../net/shibboleth/idp/cas/service/PatternServiceRegistry.java    | 4 ++--
 .../main/java/net/shibboleth/idp/cas/ticket/ServiceTicket.java    | 2 +-
 .../idp/cas/ticket/TicketIdentifierGenerationStrategy.java        | 4 +++-
 .../src/main/java/net/shibboleth/idp/cas/ticket/TicketState.java  | 2 +-
 .../shibboleth/idp/cas/service/PatternServiceRegistryTest.java    | 8 +++++---
 .../idp/cas/ticket/TicketIdentifierGenerationStrategyTest.java    | 4 +++-
 7 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/attribute/AbstractCASAttributeTranscoder.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/attribute/AbstractCASAttributeTranscoder.java
index 310b2bd64..f75ce4c10 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/attribute/AbstractCASAttributeTranscoder.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/attribute/AbstractCASAttributeTranscoder.java
@@ -78,7 +78,8 @@ public abstract class AbstractCASAttributeTranscoder<EncodedType extends IdPAttr
         log.trace("Beginning to encode attribute {}", attributeId);
 
         final String name = rule.getOrDefault(PROP_NAME, String.class, attributeId);
-        
+        // by construction if attribute id is nonnnul then the so if name.
+        assert name != null;
         final Attribute casAttribute = new Attribute(name);
         
         for (final IdPAttributeValue o : attribute.getValues()) {
diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/service/PatternServiceRegistry.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/service/PatternServiceRegistry.java
index 9d7c32771..ee747f125 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/service/PatternServiceRegistry.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/service/PatternServiceRegistry.java
@@ -17,7 +17,6 @@
 
 package net.shibboleth.idp.cas.service;
 
-import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -29,6 +28,7 @@ import javax.annotation.Nullable;
 import org.slf4j.Logger;
 
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
@@ -50,7 +50,7 @@ public class PatternServiceRegistry extends AbstractIdentifiableInitializableCom
     /** Map of service definitions to compiled patterns. */
     @Nonnull
     @NonnullElements
-    private Map<ServiceDefinition, Pattern> definitions = Collections.emptyMap();
+    private Map<ServiceDefinition, Pattern> definitions = CollectionSupport.emptyMap();
 
     /**
      * Sets the list of service definitions that back the registry.
diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/ServiceTicket.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/ServiceTicket.java
index 66d63b114..b65a8d048 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/ServiceTicket.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/ServiceTicket.java
@@ -59,7 +59,7 @@ public class ServiceTicket extends Ticket {
 
     /** {@inheritDoc} */
     @Override
-    protected Ticket newInstance(final String newId) {
+    protected Ticket newInstance(@Nonnull final String newId) {
         return new ServiceTicket(newId, getService(), getExpirationInstant(), forceAuthn);
     }
 
diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/TicketIdentifierGenerationStrategy.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/TicketIdentifierGenerationStrategy.java
index 890e95ff5..73a064041 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/TicketIdentifierGenerationStrategy.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/TicketIdentifierGenerationStrategy.java
@@ -101,7 +101,9 @@ public class TicketIdentifierGenerationStrategy implements IdentifierGenerationS
         if (ticketSuffix != null) {
             builder.append('-').append(ticketSuffix);
         }
-        return builder.toString();
+        final String result = builder.toString();
+        assert result != null;
+        return result;
     }
 
     @Override
diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/TicketState.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/TicketState.java
index dd0a78173..aafc0a37a 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/TicketState.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/ticket/TicketState.java
@@ -51,7 +51,7 @@ public class TicketState {
     @Nonnull private String authenticationMethod;
 
     /** Attribute IDs that were consented to during the ticket request. */
-    @Nonnull @NonnullElements private Set<String> consentedAttributeIds;
+    @Nullable @NonnullElements private Set<String> consentedAttributeIds;
 
     /**
      * Creates a new instance with required fields.
diff --git a/idp-cas-api/src/test/java/net/shibboleth/idp/cas/service/PatternServiceRegistryTest.java b/idp-cas-api/src/test/java/net/shibboleth/idp/cas/service/PatternServiceRegistryTest.java
index 1796c57c7..41bd6f28d 100644
--- a/idp-cas-api/src/test/java/net/shibboleth/idp/cas/service/PatternServiceRegistryTest.java
+++ b/idp-cas-api/src/test/java/net/shibboleth/idp/cas/service/PatternServiceRegistryTest.java
@@ -20,7 +20,8 @@ package net.shibboleth.idp.cas.service;
 import java.util.Arrays;
 import java.util.List;
 
-import net.shibboleth.idp.cas.service.Service;
+import javax.annotation.Nonnull;
+
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
@@ -57,14 +58,15 @@ public class PatternServiceRegistryTest {
 
     @Test(dataProvider = "services")
     public void testLookup(
-            final List<ServiceDefinition> services, final String serviceURL, final Service expected)
+            final @Nonnull List<ServiceDefinition> services, @Nonnull final String serviceURL, final Service expected)
             throws Exception {
         final PatternServiceRegistry registry = new PatternServiceRegistry();
         registry.setDefinitions(services);
         final Service actual = registry.lookup(serviceURL);
         if (expected == null) {
-            assertNull(actual);
+            assert actual == null;
         } else {
+            assert actual != null;
             assertEquals(actual.getName(), expected.getName());
             assertEquals(actual.getGroup(), expected.getGroup());
             assertEquals(actual.isAuthorizedToProxy(), expected.isAuthorizedToProxy());
diff --git a/idp-cas-api/src/test/java/net/shibboleth/idp/cas/ticket/TicketIdentifierGenerationStrategyTest.java b/idp-cas-api/src/test/java/net/shibboleth/idp/cas/ticket/TicketIdentifierGenerationStrategyTest.java
index e427d54d0..b11987232 100644
--- a/idp-cas-api/src/test/java/net/shibboleth/idp/cas/ticket/TicketIdentifierGenerationStrategyTest.java
+++ b/idp-cas-api/src/test/java/net/shibboleth/idp/cas/ticket/TicketIdentifierGenerationStrategyTest.java
@@ -28,6 +28,8 @@ import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import javax.annotation.Nonnull;
+
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
@@ -88,7 +90,7 @@ public class TicketIdentifierGenerationStrategyTest {
     }
 
     @Test(dataProvider = "url-safety", expectedExceptions = ConstraintViolationException.class)
-    public void testUrlSafety(final String prefix, final String suffix) {
+    public void testUrlSafety(@Nonnull final String prefix, final String suffix) {
         new TicketIdentifierGenerationStrategy(prefix, 10).setSuffix(suffix);
     }
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list