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

Codeberg noreply at shibboleth.net
Mon Oct 26 22:04:48 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/4f9e3ae837fc983cbcf3a13c44b7550f24b65735

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

commit 4f9e3ae837fc983cbcf3a13c44b7550f24b65735
Author: Scott Cantor <scott at restingparrotsoftware.com>
AuthorDate: Mon Oct 26 18:04:23 2026 -0400

    JSATTR-55 - SAML DataConnector pipeline needs to be adjustable
    
    https://shibboleth.atlassian.net/browse/JSATTR-55
    
    Added SOAPClientRef and SOAPPipelineName properties to schema/parser.
    Overrode in unit test.
---
 .../dc/saml/impl/AbstractSAMLDataConnectorParser.java     | 15 +++++++++++++--
 .../resources/schema/shibboleth-attribute-resolver.xsd    | 14 ++++++++++++++
 .../SimpleAggregationSAMLDataConnectorParserTest.java     |  2 +-
 .../dc/saml/resolver/saml-attribute-resolver-v2.xml       |  2 ++
 .../attribute/resolver/spring/dc/saml/spring-beans.xml    |  2 +-
 5 files changed, 31 insertions(+), 4 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 4b343bb4f..537e3f2f8 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
@@ -184,7 +184,12 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
 
         samlBuilder.addPropertyValue("mappingStrategy", parseMappingStrategy(config, parserContext));
 
-        addCustomProperties(samlBuilder, "SOAPClient");
+        if (config.hasAttributeNS(null, "SOAPClientRef")) {
+            samlBuilder.addPropertyReference("SOAPClient", config.getAttributeNS(null, "SOAPClientRef"));
+        } else {
+            // Use default property.
+            addCustomProperties(samlBuilder, "SOAPClient");
+        }
         
         samlBuilder.addPropertyValue("decryptionProcessor",
                 parseDecryptionProcessor(config, parserContext));
@@ -259,7 +264,13 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
         
         addCustomProperties(queryBuilder,
                 "authorityEndpointResolver", "roleDescriptorResolver", "identifierGenerationStrategy",
-                "SOAPPipelineName", "SOAPClientSecurityConfigurationProfileId");
+                "SOAPClientSecurityConfigurationProfileId");
+        
+        if (config.hasAttributeNS(null, "SOAPPipelineName")) {
+            queryBuilder.addPropertyValue("SOAPPipelineName", config.getAttributeNS(null, "SOAPPipelineName"));
+        } else {
+            addCustomProperties(queryBuilder, "SOAPPipelineName");
+        }
         
         queryBuilder.addPropertyValue("authorityEntityIDStrategy",
                 getAuthorityEntityIDStrategy(config, parserContext));
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 2852c9971..aa9dc8e07 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
@@ -1851,6 +1851,20 @@
                         </documentation>
                     </annotation>
                 </attribute>
+                <attribute name="SOAPClientRef" type="resolver:string">
+                    <annotation>
+                        <documentation>
+                            Optional bean reference overriding the SOAP client to use.
+                        </documentation>
+                    </annotation>
+                </attribute>
+                <attribute name="SOAPPipelineName" type="resolver:string">
+                    <annotation>
+                        <documentation>
+                            Optional name of SOAP pipeline to use.
+                        </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 8899a343a..6979dda59 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
@@ -137,7 +137,7 @@ public class SimpleAggregationSAMLDataConnectorParserTest extends XMLObjectBaseT
         Assert.assertNotNull(samlBuilder.getIdentifierGenerationStrategy());
         Assert.assertNotNull(samlBuilder.getRoleDescriptorResolver());
         Assert.assertEquals(samlBuilder.getSOAPClientSecurityConfigurationProfileId(), "http://shibboleth.net/ns/profiles/saml2/query/attribute");
-        Assert.assertEquals(samlBuilder.getSOAPPipelineName(), "SAML2.AttributeQuery");
+        Assert.assertEquals(samlBuilder.getSOAPPipelineName(), "Zorkmid");
 
         Assert.assertTrue(ContextAuthorityEntityIDResolver.class.isInstance(samlBuilder.getAuthorityEntityIDStrategy()));
 
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 3a30c2764..f6270e01c 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
@@ -17,6 +17,8 @@
     </AttributeDefinition>
 
     <DataConnector id="mySAML" xsi:type="SimpleAggregationSAML"
+        SOAPClientRef="MockSOAPClient"
+        SOAPPipelineName="Zorkmid"
         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 72a9380ff..93cfc046f 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
@@ -27,7 +27,7 @@
     <bean id="shibboleth.MetadataResolver" p:id="myMetadataResolver" class="org.opensaml.saml.metadata.resolver.ChainingMetadataResolver">
     </bean>
 
-    <bean id="shibboleth.SOAPClient.SAML" class="net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.MockSOAPClient">
+    <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">

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


More information about the commits mailing list