[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