[java-identity-provider] 01/03: IDP-1470 Fix mix-scope custom parsing: Attribute Definition

Rod Widdowson rdw at steadingsoftware.com
Tue Jun 25 04:46:12 EDT 2019


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=27b5c2a5ab26dc6effad6ea7537ad72a9b7fe325

commit 27b5c2a5ab26dc6effad6ea7537ad72a9b7fe325
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sun Jun 23 15:45:23 2019 +0100

    IDP-1470 Fix mix-scope custom parsing: Attribute Definition
    
    https://issues.shibboleth.net/jira/browse/IDP-1470
---
 .../idp/attribute/resolver/spring/BaseResolverPluginParser.java   | 4 ++--
 .../spring/ad/mapped/impl/MappedAttributeDefinitionParser.java    | 4 +++-
 .../attribute/resolver/spring/ad/mapped/impl/ValueMapParser.java  | 2 +-
 .../resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java     | 4 ++--
 .../resolver/spring/ad/mapped/SourceValueParserTest.java          | 8 +++++++-
 .../attribute/resolver/spring/ad/mapped/ValueMapParserTest.java   | 6 ++++--
 .../metadata/impl/HTTPMetadataProvidersParserSupport.java         | 3 ++-
 7 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
index a651861..e153dd7 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
@@ -109,9 +109,9 @@ public abstract class BaseResolverPluginParser extends AbstractSingleBeanDefinit
             }
         }
         builder.addPropertyValue("attributeDependencies", 
-                SpringSupport.parseCustomElements(attributeDependencyElements, parserContext));
+                SpringSupport.parseCustomElements(attributeDependencyElements, parserContext, builder));
         builder.addPropertyValue("dataConnectorDependencies", 
-                SpringSupport.parseCustomElements(dataConnectorDependencyElements, parserContext));
+                SpringSupport.parseCustomElements(dataConnectorDependencyElements, parserContext, builder));
     }
 // Checkstyle: CyclomaticComplexity ON
     
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
index 8a5accc..f7215cd 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
@@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.BeanCreationException;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.support.ManagedList;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
@@ -90,7 +91,8 @@ public class MappedAttributeDefinitionParser extends BaseResolverPluginParser {
                     "Attribute Definition '" + getDefinitionId() + "' At least one ValueMap must be specified");
         }
 
-        final List<BeanDefinition> valueMaps = SpringSupport.parseCustomElements(valueMapElements, parserContext);
+        final ManagedList<BeanDefinition> valueMaps =
+                SpringSupport.parseCustomElements(valueMapElements, parserContext, builder);
 
         log.debug("{} passThru = {}, defaultValue = {}, {} value maps",
                 new Object[] {getLogPrefix(), passThru, defaultValue, valueMaps.size(),});
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParser.java
index 27d0fb1..6845122 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParser.java
@@ -82,7 +82,7 @@ public class ValueMapParser extends AbstractSingleBeanDefinitionParser {
         }
 
         final ManagedList<BeanDefinition> sourceValues =
-                SpringSupport.parseCustomElements(sourceValueElements, parserContext);
+                SpringSupport.parseCustomElements(sourceValueElements, parserContext, builder);
 
         log.debug("AttributeDefinition(ValueMap): return value: {}, {} source values ", returnValue,
                 sourceValues.size());
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
index 455fa28..6f75dc8 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
@@ -352,7 +352,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
                             getLogPrefix(), parserContext.getReaderContext().getResource().getDescription());
                 }
                 result.addPropertyValue("trustCredential",
-                        SpringSupport.parseCustomElements(trustElements, parserContext).get(0));
+                        SpringSupport.parseCustomElement(trustElements.get(0), parserContext, result, false));
             }
 
             final List<Element> authElements =
@@ -387,7 +387,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
                             parserContext.getReaderContext().getResource().getDescription());
                 }
                 result.addPropertyValue("authCredential", SpringSupport
-                        .parseCustomElements(authElements, parserContext).get(0));
+                        .parseCustomElement(authElements.get(0), parserContext, result, false));
             }
 
             return result.getBeanDefinition();
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/SourceValueParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/SourceValueParserTest.java
index 04f9393..e4016b6 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/SourceValueParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/SourceValueParserTest.java
@@ -26,7 +26,9 @@ import static org.testng.Assert.fail;
 import org.springframework.context.support.GenericApplicationContext;
 import org.testng.annotations.Test;
 
+import net.shibboleth.idp.attribute.resolver.ad.mapped.impl.MappedAttributeDefinition;
 import net.shibboleth.idp.attribute.resolver.ad.mapped.impl.SourceValue;
+import net.shibboleth.idp.attribute.resolver.ad.mapped.impl.ValueMap;
 import net.shibboleth.idp.attribute.resolver.spring.BaseAttributeDefinitionParserTest;
 import net.shibboleth.idp.attribute.resolver.spring.ad.mapped.impl.SourceValueParser;
 import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
@@ -41,8 +43,12 @@ public class SourceValueParserTest extends BaseAttributeDefinitionParserTest {
         GenericApplicationContext context = new GenericApplicationContext();
         setTestContext(context);
         context.setDisplayName("ApplicationContext: " + SourceValueParserTest.class);
+        final MappedAttributeDefinition defn = getBean(ATTRIBUTE_FILE_PATH + "mapped/" + fileName,
+                MappedAttributeDefinition.class, context);
 
-        return getBean(ATTRIBUTE_FILE_PATH + "mapped/" + fileName, SourceValue.class, context);
+        final ValueMap vm = defn.getValueMaps().iterator().next();
+
+        return vm.getSourceValues().iterator().next();
     }
 
     @Test public void simple() {
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/ValueMapParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/ValueMapParserTest.java
index e7225aa..c7fb36b 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/ValueMapParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/ValueMapParserTest.java
@@ -24,6 +24,7 @@ import org.springframework.beans.factory.BeanDefinitionStoreException;
 import org.springframework.context.support.GenericApplicationContext;
 import org.testng.annotations.Test;
 
+import net.shibboleth.idp.attribute.resolver.ad.mapped.impl.MappedAttributeDefinition;
 import net.shibboleth.idp.attribute.resolver.ad.mapped.impl.ValueMap;
 import net.shibboleth.idp.attribute.resolver.spring.BaseAttributeDefinitionParserTest;
 import net.shibboleth.idp.attribute.resolver.spring.ad.mapped.impl.ValueMapParser;
@@ -37,9 +38,10 @@ public class ValueMapParserTest extends BaseAttributeDefinitionParserTest {
         final GenericApplicationContext context = new GenericApplicationContext();
         setTestContext(context);
         context.setDisplayName("ApplicationContext: " + ValueMapParserTest.class);
+        final MappedAttributeDefinition defn = getBean(ATTRIBUTE_FILE_PATH + "mapped/resolver/" + fileName,
+                MappedAttributeDefinition.class, context);
 
-        return getBean(ATTRIBUTE_FILE_PATH + "mapped/resolver/"  + fileName, ValueMap.class,
-                context);
+        return defn.getValueMaps().iterator().next();
     }
 
     @Test public void valueMap() {
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProvidersParserSupport.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProvidersParserSupport.java
index 32eb8fc..255910c 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProvidersParserSupport.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProvidersParserSupport.java
@@ -122,7 +122,8 @@ public final class HTTPMetadataProvidersParserSupport {
                         AbstractMetadataProviderParser.TRUST_ENGINE_ELEMENT_NAME);
                 return null;
             }
-            builder.addPropertyValue("tLSTrustEngine", SpringSupport.parseCustomElement(trustEngine, parserContext));
+            builder.addPropertyValue("tLSTrustEngine", 
+                    SpringSupport.parseCustomElement(trustEngine, parserContext, builder));
         }
 
         return builder.getBeanDefinition();

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


More information about the commits mailing list