[java-shib-attribute] branch main updated: JSATTR-6: SAML AttributeQuery DataConnector

Codeberg noreply at shibboleth.net
Thu Jan 15 06:08:37 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/23f0eef28cee2574b1a2f290b353781655db75ec

The following commit(s) were added to refs/heads/main by this push:
     new 23f0eef28 JSATTR-6: SAML AttributeQuery DataConnector
23f0eef28 is described below

commit 23f0eef28cee2574b1a2f290b353781655db75ec
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Thu Jan 15 00:26:37 2026 -0500

    JSATTR-6: SAML AttributeQuery DataConnector
    
    Fix response mapping strategy to take a
    ReloadableService<AttributeTranscoderRegistry> rather than an unwrapped
    registry instance.
---
 .../dc/saml/impl/BasicResponseMappingStrategy.java |  74 +++++------
 .../impl/BasicResponseMappingStrategyTest.java     |   2 +-
 .../dc/saml/impl/SAMLDataConnectorTest.java        |   2 +-
 .../saml/impl/SAMLDataConnectorTestingSupport.java |  83 +++++++++++++
 .../SimpleAggregationSAMLDataConnectorTest.java    |   2 +-
 .../saml/impl/AbstractSAMLDataConnectorParser.java |   6 +-
 .../MockAttributeTranscoderRegistryService.java    | 136 +++++++++++++++++++++
 ...mpleAggregationSAMLDataConnectorParserTest.java |   2 +-
 .../net/shibboleth/spring/parser.properties        |   2 +-
 .../resolver/spring/dc/saml/spring-beans.xml       |   3 +-
 10 files changed, 268 insertions(+), 44 deletions(-)

diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/BasicResponseMappingStrategy.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/BasicResponseMappingStrategy.java
index bfb7aefa9..32fb0e8d3 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/BasicResponseMappingStrategy.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/BasicResponseMappingStrategy.java
@@ -72,8 +72,8 @@ public class BasicResponseMappingStrategy extends AbstractInitializableComponent
     /** Logger. */
     @Nonnull private final Logger log = LoggerFactory.getLogger(BasicResponseMappingStrategy.class);
     
-    /** Transcoder registry. */
-    @NonnullAfterInit private AttributeTranscoderRegistry transcoderRegistry;
+    /** AttributeTranscoderRegistry service. */
+    @NonnullAfterInit private ReloadableService<AttributeTranscoderRegistry> transcoderService;
     
     /** MetadataResolver. */
     @NonnullAfterInit private MetadataResolver metadataResolver;
@@ -88,23 +88,23 @@ public class BasicResponseMappingStrategy extends AbstractInitializableComponent
     private boolean filterAttributes = true;
 
     /**
-     * Get the instance of {@link AttributeTranscoderRegistry} to use.
+     * Get the instance of {@link AttributeTranscoderRegistry} service to use.
      * 
-     * @return the transcoder registry
+     * @return the transcoder registry service
      */
     @NonnullAfterInit
-    public AttributeTranscoderRegistry getTranscoderRegistry() {
-        return transcoderRegistry;
+    public ReloadableService<AttributeTranscoderRegistry> getTranscoderService() {
+        return transcoderService;
     }
     
     /**
-     * Set the instance of {@link AttributeTranscoderRegistry} to use.
+     * Set the instance of {@link AttributeTranscoderRegistry} service to use.
      * 
-     * @param registry the transcoder registry
+     * @param service the transcoder registry service
      */
-    public void setTranscoderRegistry(final @Nullable AttributeTranscoderRegistry registry) {
+    public void setTranscoderService(final @Nullable ReloadableService<AttributeTranscoderRegistry> service) {
         checkSetterPreconditions();
-        transcoderRegistry = registry;
+        transcoderService = service;
     }
     
     /**
@@ -189,8 +189,8 @@ public class BasicResponseMappingStrategy extends AbstractInitializableComponent
     protected void doInitialize() throws ComponentInitializationException {
         super.doInitialize();
         
-        if (getTranscoderRegistry() == null) {
-            throw new ComponentInitializationException("AttributeTranscoderRegistry was null");
+        if (getTranscoderService() == null) {
+            throw new ComponentInitializationException("AttributeTranscoderRegistry service was null");
         }
         if (getMetadataResolver() == null) {
             throw new ComponentInitializationException("MetadataResolver was null");
@@ -269,31 +269,37 @@ public class BasicResponseMappingStrategy extends AbstractInitializableComponent
         
         final List<IdPAttribute> attributeResults = new LinkedList<>();
 
-        final Collection<TranscodingRule> transcodingRules = getTranscoderRegistry().getTranscodingRules(samlAttribute);
-        if (transcodingRules.isEmpty()) {
-            log.debug("No transcoding rule for Attribute (Name '{}', NameFormat: '{}')",
-                    samlAttribute.getName(),
-                    samlAttribute.getNameFormat() != null ? samlAttribute.getNameFormat() 
-                            : Attribute.UNSPECIFIED);
-            return CollectionSupport.emptyList();
-        }
+        try (final ServiceableComponent<AttributeTranscoderRegistry> component = 
+                getTranscoderService().getServiceableComponent()) {
+            
+            final AttributeTranscoderRegistry registry = component.getComponent();
 
-        for (final TranscodingRule rule : transcodingRules) {
-            assert rule != null;
+            final Collection<TranscodingRule> transcodingRules = registry.getTranscodingRules(samlAttribute);
+            if (transcodingRules.isEmpty()) {
+                log.debug("No transcoding rule for Attribute (Name '{}', NameFormat: '{}')",
+                        samlAttribute.getName(),
+                        samlAttribute.getNameFormat() != null ? samlAttribute.getNameFormat() 
+                                : Attribute.UNSPECIFIED);
+                return CollectionSupport.emptyList();
+            }
 
-            final AttributeTranscoder<Attribute> transcoder = TranscoderSupport.getTranscoder(rule);
-            try {
-                final IdPAttribute decodedAttribute = transcoder.decode(profileContext, samlAttribute, rule);
-                if (decodedAttribute != null) {
-                    attributeResults.add(decodedAttribute);
+            for (final TranscodingRule rule : transcodingRules) {
+                assert rule != null;
+
+                final AttributeTranscoder<Attribute> transcoder = TranscoderSupport.getTranscoder(rule);
+                try {
+                    final IdPAttribute decodedAttribute = transcoder.decode(profileContext, samlAttribute, rule);
+                    if (decodedAttribute != null) {
+                        attributeResults.add(decodedAttribute);
+                    }
+                } catch (final Exception e) {
+                    log.warn("Error transcoding for Attribute (Name '{}', NameFormat: '{}') via transcoder: {}",
+                            samlAttribute.getName(),
+                            samlAttribute.getNameFormat() != null ? samlAttribute.getNameFormat()
+                                    : Attribute.UNSPECIFIED, 
+                                    transcoder.getClass().getName(),
+                                    e);
                 }
-            } catch (final Exception e) {
-                log.warn("Error transcoding for Attribute (Name '{}', NameFormat: '{}') via transcoder: {}",
-                        samlAttribute.getName(),
-                        samlAttribute.getNameFormat() != null ? samlAttribute.getNameFormat()
-                                : Attribute.UNSPECIFIED, 
-                        transcoder.getClass().getName(),
-                        e);
             }
         }
 
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/BasicResponseMappingStrategyTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/BasicResponseMappingStrategyTest.java
index 82005227d..7b4cd7364 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/BasicResponseMappingStrategyTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/BasicResponseMappingStrategyTest.java
@@ -103,7 +103,7 @@ public class BasicResponseMappingStrategyTest extends XMLObjectBaseTestCase {
         attributeFilter.initialize();
 
         strategy = new BasicResponseMappingStrategy(); 
-        strategy.setTranscoderRegistry(transcoderRegistry);
+        strategy.setTranscoderService(SAMLDataConnectorTestingSupport.getAttributeTranscoderRegistryService(transcoderRegistry));
         strategy.setMetadataResolver(SAMLDataConnectorTestingSupport.buildMetadataResolver());
         strategy.setRoleDescriptorResolver(SAMLDataConnectorTestingSupport.buildRoleResolver());
         strategy.setAttributeFilterService(SAMLDataConnectorTestingSupport.getAttributeFilterService(attributeFilter));
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SAMLDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SAMLDataConnectorTest.java
index debceb8ae..a09e90b9f 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SAMLDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SAMLDataConnectorTest.java
@@ -88,7 +88,7 @@ public class SAMLDataConnectorTest extends BaseSAMLDataConnectorTest {
         mappingStrategy.setRoleDescriptorResolver(SAMLDataConnectorTestingSupport.buildRoleResolver());
         mappingStrategy.setFilterAttributes(false);
         mappingStrategy.setAttributeFilterService(SAMLDataConnectorTestingSupport.getAttributeFilterService(attributeFilter));
-        mappingStrategy.setTranscoderRegistry(transcoderRegistry);
+        mappingStrategy.setTranscoderService(SAMLDataConnectorTestingSupport.getAttributeTranscoderRegistryService(transcoderRegistry));
         queryConnector.setMappingStrategy(mappingStrategy);
 
         queryConnector.setSOAPClient( new SOAPClient() {
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SAMLDataConnectorTestingSupport.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SAMLDataConnectorTestingSupport.java
index 79d5cbdf9..295ef70e1 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SAMLDataConnectorTestingSupport.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SAMLDataConnectorTestingSupport.java
@@ -58,6 +58,7 @@ import net.shibboleth.idp.attribute.XMLObjectAttributeValue;
 import net.shibboleth.idp.attribute.filter.AttributeFilter;
 import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
 import net.shibboleth.idp.attribute.resolver.context.AttributeResolverWorkContext;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.Constraint;
@@ -105,6 +106,12 @@ public class SAMLDataConnectorTestingSupport {
         return new MockRoleDescriptorResolver();
     }
     
+    @Nonnull
+    public static ReloadableService<AttributeTranscoderRegistry> getAttributeTranscoderRegistryService(
+            @Nonnull final AttributeTranscoderRegistry registry) {
+        return new MockAttributeTranscoderRegistryService(registry);
+    }
+    
     @Nonnull
     public static ReloadableService<AttributeFilter> getAttributeFilterService(@Nonnull final AttributeFilter filter) {
         return new MockAttributeFilterService(filter);
@@ -493,4 +500,80 @@ public class SAMLDataConnectorTestingSupport {
         }
         
     }
+
+    public static class MockAttributeTranscoderRegistryService
+            implements ReloadableService<AttributeTranscoderRegistry> {
+        
+        @Nonnull private AttributeTranscoderRegistry registry;
+        
+        /**
+         * Constructor.
+         *
+         * @param attributeRegistry the registry to use
+         */
+        public MockAttributeTranscoderRegistryService(@Nonnull final AttributeTranscoderRegistry attributeRegistry) {
+            registry = Constraint.isNotNull(attributeRegistry, "Registry was null");
+        }
+
+        /** Constructor. */
+
+        /** {@inheritDoc} */
+        @Override
+        public boolean isInitialized() {
+            return true;
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public void initialize() throws ComponentInitializationException {
+            
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        @Nullable
+        public Instant getLastSuccessfulReloadInstant() {
+            return null;
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        @Nullable
+        public Instant getLastReloadAttemptInstant() {
+            return null;
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        @Nullable
+        public Throwable getReloadFailureCause() {
+            return null;
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public void reload() {
+            
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        @Nonnull
+        public ServiceableComponent<AttributeTranscoderRegistry> getServiceableComponent() throws ServiceException {
+            return new ServiceableComponent<AttributeTranscoderRegistry>() {
+                
+                @Override
+                @Nonnull
+                public AttributeTranscoderRegistry getComponent() {
+                    return registry;
+                }
+                
+                @Override
+                public void close() {
+                    
+                }
+            };
+        }
+        
+    }
 }
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SimpleAggregationSAMLDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SimpleAggregationSAMLDataConnectorTest.java
index dcefc7fc8..4ddc13806 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SimpleAggregationSAMLDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/saml/impl/SimpleAggregationSAMLDataConnectorTest.java
@@ -90,7 +90,7 @@ public class SimpleAggregationSAMLDataConnectorTest extends BaseSAMLDataConnecto
         mappingStrategy.setRoleDescriptorResolver(SAMLDataConnectorTestingSupport.buildRoleResolver());
         mappingStrategy.setFilterAttributes(false);
         mappingStrategy.setAttributeFilterService(SAMLDataConnectorTestingSupport.getAttributeFilterService(attributeFilter));
-        mappingStrategy.setTranscoderRegistry(transcoderRegistry);
+        mappingStrategy.setTranscoderService(SAMLDataConnectorTestingSupport.getAttributeTranscoderRegistryService(transcoderRegistry));
         queryConnector.setMappingStrategy(mappingStrategy);
 
         queryConnector.setSOAPClient( new SOAPClient() {
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 987172b4e..e3b51b972 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
@@ -102,9 +102,9 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
                         "AssertionValidator", "bean", true, true));
 
         // Response mapping/filtering
-        CUSTOM_PROPERTY_DEFS.put("transcoderRegistry",
+        CUSTOM_PROPERTY_DEFS.put("transcoderService",
                 new CustomPropertyDef(AbstractSAMLDataConnectorParser.class,
-                        "AttributeTranscoderRegistry", "bean", true, true));
+                        "AttributeTranscoderRegistryService", "bean", true, true));
         CUSTOM_PROPERTY_DEFS.put("attributeFilterService",
                 new CustomPropertyDef(AbstractSAMLDataConnectorParser.class,
                         "AttributeFilterService", "bean", true, true));
@@ -224,7 +224,7 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
             mappingBuilder.addPropertyValue("filterAttributes", "true");
         }
         
-        addCustomProperties(mappingBuilder, "transcoderRegistry", "metadataResolver", "roleDescriptorResolver",
+        addCustomProperties(mappingBuilder, "transcoderService", "metadataResolver", "roleDescriptorResolver",
                 "attributeFilterService");
         
         return mappingBuilder.getBeanDefinition();
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/MockAttributeTranscoderRegistryService.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/MockAttributeTranscoderRegistryService.java
new file mode 100644
index 000000000..3da5d9b36
--- /dev/null
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/MockAttributeTranscoderRegistryService.java
@@ -0,0 +1,136 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl;
+
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import net.shibboleth.idp.attribute.IdPAttribute;
+import net.shibboleth.idp.attribute.filter.AttributeFilter;
+import net.shibboleth.idp.attribute.filter.AttributeFilterException;
+import net.shibboleth.idp.attribute.filter.AttributeFilterPolicy;
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry;
+import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
+import net.shibboleth.shared.collection.CollectionSupport;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.service.ReloadableService;
+import net.shibboleth.shared.service.ServiceException;
+import net.shibboleth.shared.service.ServiceableComponent;
+
+/**
+ * Dummy implementation to satisfy wiring requirements.
+ */
+public class MockAttributeTranscoderRegistryService implements ReloadableService<AttributeTranscoderRegistry> {
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean isInitialized() {
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void initialize() throws ComponentInitializationException {
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    @Nullable
+    public Instant getLastSuccessfulReloadInstant() {
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    @Nullable
+    public Instant getLastReloadAttemptInstant() {
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    @Nullable
+    public Throwable getReloadFailureCause() {
+        return null;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void reload() {
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    @Nonnull
+    public ServiceableComponent<AttributeTranscoderRegistry> getServiceableComponent() throws ServiceException {
+        return new ServiceableComponent<AttributeTranscoderRegistry>() {
+
+            @Override
+            @Nonnull
+            public AttributeTranscoderRegistry getComponent() {
+                return new AttributeTranscoderRegistry() {
+
+                    @Override
+                    @Nullable
+                    public String getId() {
+                        return null;
+                    }
+
+                    @Override
+                    @Nonnull
+                    public Map<Locale, String> getDisplayNames(@Nonnull IdPAttribute attribute) {
+                        return CollectionSupport.emptyMap();
+                    }
+
+                    @Override
+                    @Nonnull
+                    public Map<Locale, String> getDescriptions(@Nonnull IdPAttribute attribute) {
+                        return CollectionSupport.emptyMap();
+                    }
+
+                    @Override
+                    @Nonnull
+                    public Collection<TranscodingRule> getTranscodingRules(@Nonnull IdPAttribute from,
+                            @Nonnull Class<?> to) {
+                        return CollectionSupport.emptyList();
+                    }
+
+                    @Override
+                    @Nonnull
+                    public <T> Collection<TranscodingRule> getTranscodingRules(@Nonnull T from) {
+                        return CollectionSupport.emptyList();
+                    }
+                    
+                };
+            }
+
+            @Override
+            public void close() {
+                // TODO Auto-generated method stub
+                
+            }
+            
+        };
+    }
+
+}
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 a045bfa63..5ef3df08f 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
@@ -105,7 +105,7 @@ public class SimpleAggregationSAMLDataConnectorParserTest extends XMLObjectBaseT
         Assert.assertNotNull(mappingStrategy.getAttributeFilterService());
         Assert.assertNotNull(mappingStrategy.getMetadataResolver());
         Assert.assertNotNull(mappingStrategy.getRoleDescriptorResolver());
-        Assert.assertNotNull(mappingStrategy.getTranscoderRegistry());
+        Assert.assertNotNull(mappingStrategy.getTranscoderService());
         Assert.assertTrue(mappingStrategy.isFilterAttributes());
 
         Assert.assertNotNull(queryConnector.getResultsCache());
diff --git a/shib-attribute-resolver-spring/src/test/resources/META-INF/net/shibboleth/spring/parser.properties b/shib-attribute-resolver-spring/src/test/resources/META-INF/net/shibboleth/spring/parser.properties
index 200228584..36eda6016 100644
--- a/shib-attribute-resolver-spring/src/test/resources/META-INF/net/shibboleth/spring/parser.properties
+++ b/shib-attribute-resolver-spring/src/test/resources/META-INF/net/shibboleth/spring/parser.properties
@@ -13,7 +13,7 @@ net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.AbstractSAMLDataConnec
 net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.AbstractSAMLDataConnectorParser.AssertionValidationContextBuilder.bean= shibboleth.SAMLDataConnector.AssertionValidationContextBuilder
 net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.AbstractSAMLDataConnectorParser.AssertionValidator.bean= shibboleth.SAMLDataConnector.AssertionValidator
 
-net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.AbstractSAMLDataConnectorParser.AttributeTranscoderRegistry.bean= shibboleth.AttributeRegistryService
+net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.AbstractSAMLDataConnectorParser.AttributeTranscoderRegistryService.bean= shibboleth.AttributeRegistryService
 net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.AbstractSAMLDataConnectorParser.AttributeFilterService.bean= shibboleth.AttributeFilterService
 net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.AbstractSAMLDataConnectorParser.MetadataResolver.bean= shibboleth.MetadataResolver
 # Note RoleDescriptorResolver already defined above
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 8ec9c2064..72a9380ff 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
@@ -51,8 +51,7 @@
         <constructor-arg value="#{null}"/>
     </bean>
 
-    <bean id="shibboleth.AttributeRegistryService" class="net.shibboleth.idp.attribute.transcoding.impl.AttributeTranscoderRegistryImpl" >
-        <property name="id" value="myAttributeRegistry" />
+    <bean id="shibboleth.AttributeRegistryService" class="net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.MockAttributeTranscoderRegistryService" >
     </bean>
 
     <bean id="shibboleth.AttributeFilterService" class="net.shibboleth.idp.attribute.resolver.spring.dc.saml.impl.MockAttributeFilterService">

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


More information about the commits mailing list