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

Rod Widdowson rdw at steadingsoftware.com
Tue Jun 25 04:46:14 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=5cde9723cb2a0a02a672311b3d2f69a5e65f3e03

commit 5cde9723cb2a0a02a672311b3d2f69a5e65f3e03
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Jun 25 08:51:23 2019 +0100

    IDP-1470 Fix mix-scope custom parsing: profile
    
    https://issues.shibboleth.net/jira/browse/IDP-1470
---
 .../relyingparty/metadata/AbstractMetadataProviderParser.java    | 6 ++++--
 .../relyingparty/metadata/filter/impl/NodeProcessingParser.java  | 3 ++-
 .../metadata/filter/impl/SignatureValidationParser.java          | 3 ++-
 .../metadata/impl/ChainingMetadataProviderParser.java            | 3 ++-
 .../metadata/impl/HTTPMetadataProvidersParserSupport.java        | 2 +-
 .../security/trustengine/impl/AbstractChainingParser.java        | 2 +-
 .../security/trustengine/impl/AbstractStaticPKIXParser.java      | 9 ++++++---
 .../security/trustengine/impl/StaticExplicitKeyParser.java       | 2 +-
 .../trustengine/impl/StaticExplicitKeySignatureParser.java       | 2 +-
 9 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataProviderParser.java
index 33589d9..56b32f5 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataProviderParser.java
@@ -183,12 +183,14 @@ public abstract class AbstractMetadataProviderParser extends AbstractSingleBeanD
         if (null != filters) {
             if (filters.size() == 1) {
                 // Install directly.
-                builder.addPropertyValue("metadataFilter", SpringSupport.parseCustomElements(filters, parserContext));
+                builder.addPropertyValue("metadataFilter",
+                        SpringSupport.parseCustomElement(filters.get(0), parserContext, builder, false));
             } else if (filters.size() > 1) {
                 // Wrap in a chaining filter.
                 final BeanDefinitionBuilder chainBuilder =
                         BeanDefinitionBuilder.genericBeanDefinition(MetadataFilterChain.class);
-                chainBuilder.addPropertyValue("filters", SpringSupport.parseCustomElements(filters, parserContext));
+                chainBuilder.addPropertyValue("filters", SpringSupport.parseCustomElements(filters, parserContext,
+                        chainBuilder));
                 builder.addPropertyValue("metadataFilter", chainBuilder.getBeanDefinition());
             }
         }
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/NodeProcessingParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/NodeProcessingParser.java
index ecf400f..e5bb967 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/NodeProcessingParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/NodeProcessingParser.java
@@ -58,7 +58,8 @@ public class NodeProcessingParser extends AbstractSingleBeanDefinitionParser {
                 ElementSupport.getChildElements(element, MetadataNamespaceHandler.METADATA_NODE_PROC_ELEMENT_NAME);
 
         if (null != children && !children.isEmpty()) {
-            builder.addPropertyValue("nodeProcessors", SpringSupport.parseCustomElements(children, parserContext));
+            builder.addPropertyValue("nodeProcessors",
+                    SpringSupport.parseCustomElements(children, parserContext, builder));
         }
     }
 
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java
index c82a959..297d6e4 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java
@@ -117,7 +117,8 @@ public class SignatureValidationParser extends AbstractSingleBeanDefinitionParse
                         .getDescription());
                 throw new BeanCreationException("Too many <TrustEngine>s");
             }
-            final ManagedList<BeanDefinition> engines = SpringSupport.parseCustomElements(trustEngines, parserContext);
+            final ManagedList<BeanDefinition> engines = 
+                    SpringSupport.parseCustomElements(trustEngines, parserContext, builder);
 
             builder.addConstructorArgValue(engines.get(0));
         } else {
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ChainingMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ChainingMetadataProviderParser.java
index 82e0bab..4157535 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ChainingMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ChainingMetadataProviderParser.java
@@ -46,6 +46,7 @@ public class ChainingMetadataProviderParser extends AbstractMetadataProviderPars
         final List<Element> childProviders =
                 ElementSupport.getChildElements(element, MetadataNamespaceHandler.METADATA_ELEMENT_NAME);
 
-        builder.addPropertyValue("resolvers", SpringSupport.parseCustomElements(childProviders, parserContext));
+        builder.addPropertyValue("resolvers",
+                SpringSupport.parseCustomElements(childProviders, parserContext, builder));
     }
 }
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 255910c..00470ba 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
@@ -123,7 +123,7 @@ public final class HTTPMetadataProvidersParserSupport {
                 return null;
             }
             builder.addPropertyValue("tLSTrustEngine", 
-                    SpringSupport.parseCustomElement(trustEngine, parserContext, builder));
+                    SpringSupport.parseCustomElement(trustEngine, parserContext, builder, false));
         }
 
         return builder.getBeanDefinition();
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/AbstractChainingParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/AbstractChainingParser.java
index eb66caa..2519cc5 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/AbstractChainingParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/AbstractChainingParser.java
@@ -49,7 +49,7 @@ public abstract class AbstractChainingParser extends AbstractTrustEngineParser {
         
         final List<BeanMetadataElement> allChildren = new ManagedList<>(childEngines.size()+ childEngineRefs.size());
         
-        allChildren.addAll(SpringSupport.parseCustomElements(childEngines, parserContext));
+        allChildren.addAll(SpringSupport.parseCustomElements(childEngines, parserContext, builder));
         
         for (final Element ref:childEngineRefs) {
             final String reference = StringSupport.trimOrNull(ref.getAttributeNS(null, "ref"));
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/AbstractStaticPKIXParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/AbstractStaticPKIXParser.java
index a2b3191..544b5a2 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/AbstractStaticPKIXParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/AbstractStaticPKIXParser.java
@@ -66,8 +66,10 @@ public abstract class AbstractStaticPKIXParser extends AbstractTrustEngineParser
 
         final BeanDefinitionBuilder builder =
                 BeanDefinitionBuilder.genericBeanDefinition(StaticPKIXValidationInformationResolver.class);
-        builder.addConstructorArgValue(SpringSupport.parseCustomElements(validationInfoElements, parserContext));
-        builder.addConstructorArgValue(SpringSupport.getElementTextContentAsManagedList(trustedNameElements));
+        builder.addConstructorArgValue(
+                SpringSupport.parseCustomElements(validationInfoElements, parserContext, builder));
+        builder.addConstructorArgValue(
+                SpringSupport.getElementTextContentAsManagedList(trustedNameElements));
 
         return builder.getBeanDefinition();
     }
@@ -90,7 +92,8 @@ public abstract class AbstractStaticPKIXParser extends AbstractTrustEngineParser
                 ElementSupport.getChildElements(element, PKIXValidationOptionsParser.ELEMENT_NAME);
 
         if (null != validationOptionsElements && !validationOptionsElements.isEmpty()) {
-            builder.addConstructorArgValue(SpringSupport.parseCustomElements(validationOptionsElements, parserContext));
+            builder.addConstructorArgValue(
+                    SpringSupport.parseCustomElements(validationOptionsElements, parserContext, builder));
         }
         return builder.getBeanDefinition();
     }
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/StaticExplicitKeyParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/StaticExplicitKeyParser.java
index c79dd8b..b2334a5 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/StaticExplicitKeyParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/StaticExplicitKeyParser.java
@@ -56,7 +56,7 @@ public class StaticExplicitKeyParser extends AbstractTrustEngineParser {
 
         final BeanDefinitionBuilder resolver =
                 BeanDefinitionBuilder.genericBeanDefinition(StaticCredentialResolver.class);
-        resolver.addConstructorArgValue(SpringSupport.parseCustomElements(credentials, parserContext));
+        resolver.addConstructorArgValue(SpringSupport.parseCustomElements(credentials, parserContext, resolver));
 
         builder.addConstructorArgValue(resolver.getBeanDefinition());
     }
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/StaticExplicitKeySignatureParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/StaticExplicitKeySignatureParser.java
index f6e6025..11cecd9 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/StaticExplicitKeySignatureParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/impl/StaticExplicitKeySignatureParser.java
@@ -57,7 +57,7 @@ public class StaticExplicitKeySignatureParser extends AbstractTrustEngineParser
 
         final BeanDefinitionBuilder resolver =
                 BeanDefinitionBuilder.genericBeanDefinition(StaticCredentialResolver.class);
-        resolver.addConstructorArgValue(SpringSupport.parseCustomElements(credentials, parserContext));
+        resolver.addConstructorArgValue(SpringSupport.parseCustomElements(credentials, parserContext, resolver));
 
         builder.addConstructorArgValue(resolver.getBeanDefinition());
 

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


More information about the commits mailing list