[java-shib-attribute] 04/04: JSATTR-6: SAML AttributeQuery DataConnector
Codeberg
noreply at shibboleth.net
Fri Jan 16 17:07:56 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/07fe62f96c1fdd72ba308746721d0a9ec135be5b
commit 07fe62f96c1fdd72ba308746721d0a9ec135be5b
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Fri Jan 16 12:04:36 2026 -0500
JSATTR-6: SAML AttributeQuery DataConnector
In custom parser add missing init and destroy methods for the response
mapping strategy bean.
Update parser unit tests with validation that all internally-constructed
beans are initialized.
---
.../spring/dc/saml/impl/AbstractSAMLDataConnectorParser.java | 3 +++
.../saml/impl/SimpleAggregationSAMLDataConnectorParserTest.java | 9 +++++++++
2 files changed, 12 insertions(+)
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 b65750737..28c8d8ea8 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
@@ -239,6 +239,9 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
addCustomProperties(mappingBuilder, "transcoderService", "metadataResolver", "roleDescriptorResolver",
"attributeFilterService");
+ mappingBuilder.setInitMethodName("initialize");
+ mappingBuilder.setDestroyMethodName("destroy");
+
return mappingBuilder.getBeanDefinition();
}
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 eead3f941..8899a343a 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
@@ -77,6 +77,7 @@ public class SimpleAggregationSAMLDataConnectorParserTest extends XMLObjectBaseT
getDataConnector(propSource,
"net/shibboleth/idp/attribute/resolver/spring/dc/saml/resolver/saml-attribute-resolver-v2.xml");
assertNotNull(connector);
+ Assert.assertTrue(connector.isInitialized());
Assert.assertEquals(connector.getAttributeDependencies().size(), 1);
Assert.assertEquals(connector.getDataConnectorDependencies().size(), 1);
@@ -93,18 +94,22 @@ public class SimpleAggregationSAMLDataConnectorParserTest extends XMLObjectBaseT
final SAMLDataConnector queryConnector = connector.getQueryConnector();
Assert.assertNotNull(queryConnector);
+ Assert.assertTrue(queryConnector.isInitialized());
Assert.assertNotNull(queryConnector.getAssertionValidationProcessor());
+ Assert.assertTrue(queryConnector.getAssertionValidationProcessor().isInitialized());
Assert.assertNotNull(queryConnector.getAssertionValidationProcessor().getAssertionValidatorLookup());
Assert.assertNotNull(queryConnector.getAssertionValidationProcessor().getAssertionValidationContextBuilder());
Assert.assertNotNull(queryConnector.getDecryptionProcessor());
+ Assert.assertTrue(queryConnector.getDecryptionProcessor().isInitialized());
Assert.assertNotNull(queryConnector.getDecryptionProcessor().getDecryptionConfigurationLookupStrategy());
Assert.assertNotNull(queryConnector.getDecryptionProcessor().getDecryptionParametersResolver());
Assert.assertNotNull(queryConnector.getMappingStrategy());
Assert.assertTrue(BasicResponseMappingStrategy.class.isInstance(queryConnector.getMappingStrategy()));
final BasicResponseMappingStrategy mappingStrategy = BasicResponseMappingStrategy.class.cast(queryConnector.getMappingStrategy());
+ Assert.assertTrue(mappingStrategy.isInitialized());
Assert.assertNotNull(mappingStrategy.getAttributeFilterService());
Assert.assertNotNull(mappingStrategy.getMetadataResolver());
Assert.assertNotNull(mappingStrategy.getRoleDescriptorResolver());
@@ -125,6 +130,8 @@ public class SimpleAggregationSAMLDataConnectorParserTest extends XMLObjectBaseT
Assert.assertNotNull(queryBuilder);
final ExecutableQueryBuilder samlBuilder = ExecutableQueryBuilder.class.cast(queryBuilder);
+ Assert.assertTrue(samlBuilder.isInitialized());
+
Assert.assertNotNull(samlBuilder.getAuthorityEndpointResolver());
Assert.assertNotNull(samlBuilder.getIdentifierGenerationStrategy());
@@ -136,10 +143,12 @@ public class SimpleAggregationSAMLDataConnectorParserTest extends XMLObjectBaseT
Assert.assertTrue(CriteriaSelfEntityIDResolver.class.isInstance(samlBuilder.getSelfEntityIDStrategy()));
final CriteriaSelfEntityIDResolver selfIDResolver = CriteriaSelfEntityIDResolver.class.cast(samlBuilder.getSelfEntityIDStrategy());
+ Assert.assertTrue(selfIDResolver.isInitialized());
Assert.assertNotNull(selfIDResolver.getSelfEntityIDResolver());
Assert.assertTrue(DependencyAttributeSubjectResolver.class.isInstance(samlBuilder.getSubjectStrategy()));
final DependencyAttributeSubjectResolver subjectResolver = DependencyAttributeSubjectResolver.class.cast(samlBuilder.getSubjectStrategy());
+ Assert.assertTrue(subjectResolver.isInitialized());
Assert.assertEquals(subjectResolver.getAttributeIDs(), List.of("email"));
Assert.assertEquals(subjectResolver.getDefaultNameIDFormat(), "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent");
Assert.assertEquals(subjectResolver.getNameIDFormatMap(), Map.of("email", "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"));
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list