[java-identity-provider] branch main updated: IDP-2372 - Upgrade to latest SNAPSHOT on legacy system cannot find bean

Scott Cantor cantor.2 at osu.edu
Mon Mar 31 14:47:01 UTC 2025


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=bfa9945b4ea6cdd021adca8a2c2511eea5f4ae6b

The following commit(s) were added to refs/heads/main by this push:
     new bfa9945b4 IDP-2372 - Upgrade to latest SNAPSHOT on legacy system cannot find bean
bfa9945b4 is described below

commit bfa9945b4ea6cdd021adca8a2c2511eea5f4ae6b
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Mar 31 10:46:31 2025 -0400

    IDP-2372 - Upgrade to latest SNAPSHOT on legacy system cannot find bean
    
    https://shibboleth.atlassian.net/browse/IDP-2372
    
    Relax injection of collections to @Nullable.
    Change Spring wiring to allow for absent collections.
---
 .../net/shibboleth/idp/conf/subject-c14n-system.xml     | 12 ++++++------
 .../nameid/NameIDCanonicalizationFlowDescriptor.java    |  7 +++----
 .../idp/saml/nameid/impl/BaseTransformingDecoder.java   | 17 ++++++++++-------
 3 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/subject-c14n-system.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/subject-c14n-system.xml
index 26c2a7129..710feb66b 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/subject-c14n-system.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/subject-c14n-system.xml
@@ -138,33 +138,33 @@
         class="net.shibboleth.idp.saml.nameid.impl.TransformingNameIDDecoder"
         p:lowercase="%{idp.c14n.saml.lowercase:false}"
         p:uppercase="%{idp.c14n.saml.uppercase:false}"
-        p:transforms-ref="shibboleth.NameTransforms" />
+        p:transforms="#{getObject('shibboleth.NameTransforms')}" />
 
     <bean id="c14n/SAML2Transform" class="net.shibboleth.idp.saml.nameid.impl.NameIDCanonicalization"
         p:activationCondition-ref="shibboleth.NameTransformPredicate"
-        p:formats-ref="shibboleth.NameTransformFormats"
+        p:formats="#{getObject('shibboleth.NameTransformFormats')}"
         p:decoder="#{getObject('shibboleth.SAML2Transform.NameIDDecoder') ?: getObject('TransformingNameIDDecoder')}" />
 
     <bean id="ProxyTransformingNameIDDecoder" lazy-init="true"
         class="net.shibboleth.idp.saml.nameid.impl.TransformingNameIDDecoder"
         p:lowercase="%{idp.c14n.saml.proxy.lowercase:false}"
         p:uppercase="%{idp.c14n.saml.proxy.uppercase:false}"
-        p:transforms-ref="shibboleth.ProxyNameTransforms" />
+        p:transforms="#{getObject('shibboleth.ProxyNameTransforms')}" />
 
     <bean id="c14n/SAML2ProxyTransform" class="net.shibboleth.idp.saml.nameid.impl.NameIDCanonicalization"
         p:activationCondition-ref="shibboleth.ProxyNameTransformPredicate"
-        p:formats-ref="shibboleth.ProxyNameTransformFormats"
+        p:formats="#{getObject('shibboleth.ProxyNameTransformFormats')}"
         p:decoder="#{getObject('shibboleth.SAML2ProxyTransform.NameIDDecoder') ?: getObject('ProxyTransformingNameIDDecoder')}" />
                
     <bean id="TransformingNameIdentifierDecoder" lazy-init="true"
         class="net.shibboleth.idp.saml.nameid.impl.TransformingNameIdentifierDecoder"
         p:lowercase="%{idp.c14n.saml.lowercase:false}"
         p:uppercase="%{idp.c14n.saml.uppercase:false}"
-        p:transforms-ref="shibboleth.NameTransforms" />
+        p:transforms="#{getObject('shibboleth.NameTransforms')}" />
 
     <bean id="c14n/SAML1Transform" class="net.shibboleth.idp.saml.nameid.impl.NameIdentifierCanonicalization"
         p:activationCondition-ref="shibboleth.NameTransformPredicate"
-        p:formats-ref="shibboleth.NameTransformFormats"
+        p:formats="#{getObject('shibboleth.NameTransformFormats')}"
         p:decoder="#{getObject('shibboleth.SAML1Transform.NameIdentifierDecoder') ?: getObject('TransformingNameIdentifierDecoder')}" />
      
 </beans>
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIDCanonicalizationFlowDescriptor.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIDCanonicalizationFlowDescriptor.java
index 5a14e3b30..c6feb1158 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIDCanonicalizationFlowDescriptor.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIDCanonicalizationFlowDescriptor.java
@@ -18,12 +18,12 @@ import java.util.Collection;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 import net.shibboleth.idp.authn.SubjectCanonicalizationFlowDescriptor;
 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.StringSupport;
 
 /**
@@ -55,9 +55,8 @@ public class NameIDCanonicalizationFlowDescriptor extends SubjectCanonicalizatio
      * 
      * @param theFormats The formats to set.
      */
-    public void setFormats(@Nonnull final Collection<String> theFormats) {
-        formats = CollectionSupport.copyToSet(StringSupport.normalizeStringCollection(
-                Constraint.isNotNull(theFormats, "Format collection cannot be null")));
+    public void setFormats(@Nullable final Collection<String> theFormats) {
+        formats = CollectionSupport.copyToSet(StringSupport.normalizeStringCollection(theFormats));
     }
     
 }
\ No newline at end of file
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransformingDecoder.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransformingDecoder.java
index bbd1b6cc4..b55234dbe 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransformingDecoder.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/BaseTransformingDecoder.java
@@ -82,15 +82,18 @@ public abstract class BaseTransformingDecoder extends AbstractIdentifiableInitia
      * 
      * @param newTransforms collection of replacement transforms
      */
-    public void setTransforms(@Nonnull final Collection<Pair<String,String>> newTransforms) {
+    public void setTransforms(@Nullable final Collection<Pair<String,String>> newTransforms) {
         checkSetterPreconditions();
-        Constraint.isNotNull(newTransforms, "Transforms collection cannot be null");
         
-        transforms = new ArrayList<>();
-        for (final Pair<String,String> p : newTransforms) {
-            final Pattern pattern = Pattern.compile(StringSupport.trimOrNull(p.getFirst()));
-            transforms.add(new Pair<>(pattern, Constraint.isNotNull(
-                    StringSupport.trimOrNull(p.getSecond()), "Replacement expression cannot be null")));
+        if (newTransforms == null) {
+            transforms = CollectionSupport.emptyList();
+        } else {
+            transforms = new ArrayList<>();
+            for (final Pair<String,String> p : newTransforms) {
+                final Pattern pattern = Pattern.compile(StringSupport.trimOrNull(p.getFirst()));
+                transforms.add(new Pair<>(pattern, Constraint.isNotNull(
+                        StringSupport.trimOrNull(p.getSecond()), "Replacement expression cannot be null")));
+            }
         }
     }
     

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


More information about the commits mailing list