[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