[java-shib-attribute] branch main updated: JSATTR-55 - SAML DataConnector pipeline needs to be adjustable

Codeberg noreply at shibboleth.net
Mon Oct 26 23:00:26 UTC 2026


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

codeberg pushed a commit to branch main
in repository java-shib-attribute.

View the commit online:
https://codeberg.org/Shibboleth/java-shib-attribute/commit/f0e7afc46799349821dffd2cecf1b0a54060fa4e

The following commit(s) were added to refs/heads/main by this push:
     new f0e7afc46 JSATTR-55 - SAML DataConnector pipeline needs to be adjustable
f0e7afc46 is described below

commit f0e7afc46799349821dffd2cecf1b0a54060fa4e
Author: Scott Cantor <scott at restingparrotsoftware.com>
AuthorDate: Mon Oct 26 19:00:01 2026 -0400

    JSATTR-55 - SAML DataConnector pipeline needs to be adjustable
    
    https://shibboleth.atlassian.net/browse/JSATTR-55
    
    Additional override settings for config resolvers.
---
 .../dc/saml/impl/AbstractSAMLDataConnectorParser.java      | 11 ++++++++++-
 .../impl/SimpleAggregationSAMLDataConnectorParser.java     |  7 ++++++-
 .../resources/schema/shibboleth-attribute-resolver.xsd     | 14 ++++++++++++++
 .../impl/SimpleAggregationSAMLDataConnectorParserTest.java |  2 +-
 .../spring/dc/saml/resolver/saml-attribute-resolver-v2.xml |  3 +++
 .../idp/attribute/resolver/spring/dc/saml/spring-beans.xml |  4 ++--
 6 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/AbstractSAMLDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/AbstractSAMLDataConnectorParser.java
index 537e3f2f8..d423c611a 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/AbstractSAMLDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/AbstractSAMLDataConnectorParser.java
@@ -325,8 +325,17 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
 
         final BeanDefinitionBuilder configLookupBuilder =
                 BeanDefinitionBuilder.genericBeanDefinition(CriteriaDecryptionConfigurationLookup.class);
-        addCustomProperties(configLookupBuilder, "decryptionConfigurationResolver", "securityConfigurationProfileId");
+
+        addCustomProperties(configLookupBuilder, "securityConfigurationProfileId");
         configLookupBuilder.setInitMethodName("initialize");
+        
+        if (config.hasAttributeNS(null, "decryptionConfigurationResolverRef")) {
+            configLookupBuilder.addPropertyReference("decryptionConfigurationResolver",
+                    config.getAttributeNS(null, "decryptionConfigurationResolverRef"));
+        } else {
+            addCustomProperties(configLookupBuilder, "decryptionConfigurationResolver");
+        }
+        
 
         final BeanDefinitionBuilder builder =
                 BeanDefinitionBuilder.genericBeanDefinition(DecryptionProcessor.class);
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParser.java
index d20390eef..f028b56d1 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParser.java
@@ -133,7 +133,12 @@ public class SimpleAggregationSAMLDataConnectorParser extends AbstractSAMLDataCo
         final BeanDefinitionBuilder strategyBuilder = 
                 BeanDefinitionBuilder.genericBeanDefinition(CriteriaSelfEntityIDResolver.class);
 
-        addCustomProperties(strategyBuilder, "selfEntityIDResolver");
+        if (config.hasAttributeNS(null, "selfEntityIDResolverRef")) {
+            strategyBuilder.addPropertyReference("selfEntityIDResolver",
+                    config.getAttributeNS(null, "selfEntityIDResolverRef"));
+        } else {
+            addCustomProperties(strategyBuilder, "selfEntityIDResolver");
+        }
         
         strategyBuilder.setInitMethodName("initialize");
 
diff --git a/shib-attribute-resolver-spring/src/main/resources/schema/shibboleth-attribute-resolver.xsd b/shib-attribute-resolver-spring/src/main/resources/schema/shibboleth-attribute-resolver.xsd
index aa9dc8e07..2e369f640 100644
--- a/shib-attribute-resolver-spring/src/main/resources/schema/shibboleth-attribute-resolver.xsd
+++ b/shib-attribute-resolver-spring/src/main/resources/schema/shibboleth-attribute-resolver.xsd
@@ -1865,6 +1865,13 @@
                         </documentation>
                     </annotation>
                 </attribute>
+                <attribute name="decryptionConfigurationResolverRef" type="resolver:string">
+                    <annotation>
+                        <documentation>
+                            Optional name of resolver of XML decryption configuration.
+                        </documentation>
+                    </annotation>
+                </attribute>
             </extension>
         </complexContent>
     </complexType>
@@ -1918,6 +1925,13 @@
                         </documentation>
                     </annotation>
                 </attribute>
+                <attribute name="selfEntityIDResolverRef" type="resolver:string">
+                    <annotation>
+                        <documentation>
+                            Optional name of resolver of the querying system's entityID.
+                        </documentation>
+                    </annotation>
+                </attribute>
             </extension>
         </complexContent>
     </complexType>
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParserTest.java
index 6979dda59..c5020023a 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParserTest.java
@@ -121,7 +121,7 @@ public class SimpleAggregationSAMLDataConnectorParserTest extends XMLObjectBaseT
         Assert.assertNotNull(queryConnector.getSOAPClient());
         Assert.assertTrue(queryConnector.isSubjectMatch());
         Assert.assertNotNull(queryConnector.getSubjectMatchProcessor());
-        Assert.assertNotNull(queryConnector.getValidator());
+
         
         Assert.assertEquals(queryConnector.getAttributeDependencies().size(), 1);
         Assert.assertEquals(queryConnector.getDataConnectorDependencies().size(), 1);
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/saml/resolver/saml-attribute-resolver-v2.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/saml/resolver/saml-attribute-resolver-v2.xml
index f6270e01c..8c98d7925 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/saml/resolver/saml-attribute-resolver-v2.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/saml/resolver/saml-attribute-resolver-v2.xml
@@ -19,6 +19,9 @@
     <DataConnector id="mySAML" xsi:type="SimpleAggregationSAML"
         SOAPClientRef="MockSOAPClient"
         SOAPPipelineName="Zorkmid"
+        decryptionConfigurationResolverRef="MockDecryptionConfigurationResolver"
+        selfEntityIDResolverRef="MockSelfEntityIDResolver"
+        
         subjectMatch="true"
         subjectAttributeIDs="email"
         subjectNameIDFormatMapRef="SAML.SubjectNameIDFormatMap"
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/saml/spring-beans.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/saml/spring-beans.xml
index 93cfc046f..f80c73431 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/saml/spring-beans.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/saml/spring-beans.xml
@@ -30,10 +30,10 @@
     <bean id="MockSOAPClient" class="net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.MockSOAPClient">
     </bean>
 
-    <bean id="shibboleth.SAMLDataConnector.SelfEntityIDResolver" class="net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.MockSelfEntityIDResolver">
+    <bean id="MockSelfEntityIDResolver" class="net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.MockSelfEntityIDResolver">
     </bean>
 
-    <bean id="shibboleth.SAMLDataConnector.DecryptionConfigurationResolver" class="net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.MockDecryptionConfigurationResolver">
+    <bean id="MockDecryptionConfigurationResolver" class="net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.MockDecryptionConfigurationResolver">
     </bean>
 
     <bean id="shibboleth.DecryptionParametersResolver" class="org.opensaml.xmlsec.impl.BasicDecryptionParametersResolver">

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


More information about the commits mailing list