[java-opensaml] branch main updated: JSSH-9 - Rework IdentifierGenerationStrategy usage

Scott Cantor cantor.2 at osu.edu
Thu Oct 13 16:10:27 UTC 2022


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch main
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=6ae2d16beedb1f1c05400e50b2856d5d01505985

The following commit(s) were added to refs/heads/main by this push:
     new 6ae2d16be JSSH-9 - Rework IdentifierGenerationStrategy usage
6ae2d16be is described below

commit 6ae2d16beedb1f1c05400e50b2856d5d01505985
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Oct 13 12:10:05 2022 -0400

    JSSH-9 - Rework IdentifierGenerationStrategy usage
    
    https://shibboleth.atlassian.net/browse/JSSH-9
---
 .../java/org/opensaml/saml/saml2/encryption/Encrypter.java     | 10 ++++++----
 .../org/opensaml/saml/saml1/profile/impl/AddResponseShell.java |  4 ++--
 .../saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java  |  9 +++++----
 .../saml/saml2/profile/impl/AbstractResponseShellAction.java   |  4 ++--
 .../opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java  |  8 ++------
 .../saml/saml2/profile/impl/AddStatusResponseShell.java        |  4 ++--
 .../opensaml/saml/saml2/core/tests/SignedAssertionTest.java    |  7 ++++---
 7 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java
index 4b69935ae..e638ed4a7 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java
@@ -21,10 +21,12 @@ import java.security.Key;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
+import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy;
-import net.shibboleth.shared.security.impl.RandomIdentifierGenerationStrategy;
+import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
 import net.shibboleth.shared.xml.SerializeSupport;
 
 import org.opensaml.core.xml.XMLObject;
@@ -222,7 +224,7 @@ public class Encrypter extends org.opensaml.xmlsec.encryption.support.Encrypter
                 (XMLEncryptionBuilder<CarriedKeyName>) builderFactory.<CarriedKeyName>getBuilderOrThrow(
                         CarriedKeyName.DEFAULT_ELEMENT_NAME);
 
-        idGenerator = new RandomIdentifierGenerationStrategy();
+        idGenerator = IdentifierGenerationStrategy.getInstance(ProviderType.RANDOM);
 
         keyPlacement = KeyPlacement.PEER;
     }
@@ -232,8 +234,8 @@ public class Encrypter extends org.opensaml.xmlsec.encryption.support.Encrypter
      * 
      * @param newIDGenerator the new IdentifierGenerator to use
      */
-    public void setIDGenerator(final IdentifierGenerationStrategy newIDGenerator) {
-        this.idGenerator = newIDGenerator;
+    public void setIDGenerator(@Nonnull final IdentifierGenerationStrategy newIDGenerator) {
+        idGenerator = Constraint.isNotNull(newIDGenerator, "IdentifierGenerationStrategy cannot be null");
     }
 
     /**
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java
index 27b41315b..aabde6b7e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java
@@ -40,7 +40,7 @@ import org.slf4j.LoggerFactory;
 
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy;
-import net.shibboleth.shared.security.impl.SecureRandomIdentifierGenerationStrategy;
+import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
 
 /**
  * Action that creates an empty {@link Response}, and sets it as the
@@ -72,7 +72,7 @@ public class AddResponseShell extends AbstractProfileAction {
     /** Constructor. */
     public AddResponseShell() {
         // Default strategy is a 16-byte secure random source.
-        idGeneratorLookupStrategy = prc -> new SecureRandomIdentifierGenerationStrategy();
+        idGeneratorLookupStrategy = prc ->IdentifierGenerationStrategy.getInstance(ProviderType.SECURE);
     }
     
     /**
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java
index 5562b0e76..edc867da8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/decoding/impl/HTTPArtifactDecoder.java
@@ -69,12 +69,13 @@ import net.shibboleth.shared.codec.Base64Support;
 import net.shibboleth.shared.codec.DecodingException;
 import net.shibboleth.shared.codec.EncodingException;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.resolver.CriteriaSet;
 import net.shibboleth.shared.resolver.Resolver;
 import net.shibboleth.shared.resolver.ResolverException;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy;
-import net.shibboleth.shared.security.impl.SecureRandomIdentifierGenerationStrategy;
+import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
 
 /** 
  * SAML 2 Artifact Binding decoder, support both HTTP GET and POST.
@@ -135,7 +136,7 @@ public class HTTPArtifactDecoder extends BaseHttpServletRequestXMLMessageDecoder
         }
         
         if (idStrategy == null) {
-            idStrategy = new SecureRandomIdentifierGenerationStrategy();
+            idStrategy = IdentifierGenerationStrategy.getInstance(ProviderType.SECURE);
         }
         
         if (artifactBuilderFactory == null) {
@@ -178,9 +179,9 @@ public class HTTPArtifactDecoder extends BaseHttpServletRequestXMLMessageDecoder
      * 
      * @param strategy the identifier generation strategy
      */
-    public void setIdentifierGenerationStrategy(@Nullable final IdentifierGenerationStrategy strategy) {
+    public void setIdentifierGenerationStrategy(@Nonnull final IdentifierGenerationStrategy strategy) {
         checkSetterPreconditions();
-        idStrategy = strategy;
+        idStrategy = Constraint.isNotNull(strategy, "IdentifierGenerationStrategy cannot be null");
     }
     
     /**
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AbstractResponseShellAction.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AbstractResponseShellAction.java
index 7d4ef47c9..6f1e6a7b5 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AbstractResponseShellAction.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AbstractResponseShellAction.java
@@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
 
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy;
-import net.shibboleth.shared.security.impl.SecureRandomIdentifierGenerationStrategy;
+import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
 
 /**
  * Abstract action that creates an empty object derived from {@link StatusResponseType},
@@ -84,7 +84,7 @@ public abstract class AbstractResponseShellAction<MessageType extends StatusResp
     /** Constructor. */
     public AbstractResponseShellAction() {
         // Default strategy is a 16-byte secure random source.
-        idGeneratorLookupStrategy = prc -> new SecureRandomIdentifierGenerationStrategy();
+        idGeneratorLookupStrategy = prc ->IdentifierGenerationStrategy.getInstance(ProviderType.SECURE);
     }
     
     /**
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
index 16371bb39..f0ecded0f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
@@ -58,7 +58,7 @@ import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy;
-import net.shibboleth.shared.security.impl.SecureRandomIdentifierGenerationStrategy;
+import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
 
 /**
  * Action that builds a {@link NameID} and adds it to the {@link Subject} of all the assertions
@@ -152,11 +152,7 @@ public class AddNameIDToSubjects extends AbstractProfileAction {
         assertionsLookupStrategy = new AssertionStrategy();
 
         // Default strategy is a 16-byte secure random source.
-        idGeneratorLookupStrategy = new Function<>() {
-            public IdentifierGenerationStrategy apply(final ProfileRequestContext input) {
-                return new SecureRandomIdentifierGenerationStrategy();
-            }
-        };
+        idGeneratorLookupStrategy = prc ->IdentifierGenerationStrategy.getInstance(ProviderType.SECURE);
         
         // Default predicate pulls SPNameQualifier from NameIDPolicy and does a direct match
         // against issuer. Handles simple cases, overridden for complex ones.
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusResponseShell.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusResponseShell.java
index 4e9a4ebbe..a4b3f8741 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusResponseShell.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddStatusResponseShell.java
@@ -45,7 +45,7 @@ import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy;
-import net.shibboleth.shared.security.impl.SecureRandomIdentifierGenerationStrategy;
+import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
 
 /**
  * Action that creates an empty object derived from {@link StatusResponseType},
@@ -87,7 +87,7 @@ public class AddStatusResponseShell extends AbstractProfileAction {
     /** Constructor. */
     public AddStatusResponseShell() {
         // Default strategy is a 16-byte secure random source.
-        idGeneratorLookupStrategy = prc -> new SecureRandomIdentifierGenerationStrategy();
+        idGeneratorLookupStrategy = prc ->IdentifierGenerationStrategy.getInstance(ProviderType.SECURE);
     }
     
     /**
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/SignedAssertionTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/SignedAssertionTest.java
index 7e25d33c2..08f3fc43d 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/SignedAssertionTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/core/tests/SignedAssertionTest.java
@@ -24,7 +24,8 @@ import java.security.KeyPair;
 import java.time.Instant;
 
 import net.shibboleth.shared.resolver.CriteriaSet;
-import net.shibboleth.shared.security.impl.RandomIdentifierGenerationStrategy;
+import net.shibboleth.shared.security.IdentifierGenerationStrategy;
+import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
 import net.shibboleth.shared.xml.SerializeSupport;
 
 import org.opensaml.core.criterion.EntityIdCriterion;
@@ -74,7 +75,7 @@ public class SignedAssertionTest extends XMLObjectBaseTestCase {
     private XMLObjectBuilder<Signature> signatureBuilder;
     
     /** Generator of element IDs. */
-    private RandomIdentifierGenerationStrategy idGenerator;
+    private IdentifierGenerationStrategy idGenerator;
 
     @BeforeMethod
     protected void setUp() throws Exception {
@@ -90,7 +91,7 @@ public class SignedAssertionTest extends XMLObjectBaseTestCase {
                 AuthnStatement.DEFAULT_ELEMENT_NAME);
         signatureBuilder = builderFactory.getBuilderOrThrow(Signature.DEFAULT_ELEMENT_NAME);
         
-        idGenerator = new RandomIdentifierGenerationStrategy();
+        idGenerator = IdentifierGenerationStrategy.getInstance(ProviderType.RANDOM);
     }
     
     /**

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


More information about the commits mailing list