[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