[java-identity-provider] 03/04: IDP-2037 Computed, Pairwise and StoredId DataConnectors to not implement all the common attributes

Rod Widdowson rdw at steadingsoftware.com
Sat Nov 12 16:24:36 UTC 2022


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

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

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

commit 75432afd5a84ea6fc17ea407479b34877f789e01
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sat Nov 12 15:28:32 2022 +0000

    IDP-2037 Computed, Pairwise and StoredId DataConnectors to not implement all the common attributes
    
    https://shibboleth.atlassian.net/browse/IDP-2037
    
    Special case the handling of failFastInitialize to the LDAP, RDBMS and HTTP
    data connectors (the Stored Id handler mananges this itself)
---
 .../spring/dc/AbstractDataConnectorParser.java     | 27 ++++++++++++++--------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
index eb573b824..33a708270 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
@@ -22,23 +22,27 @@ import java.util.List;
 import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Element;
+
 import net.shibboleth.ext.spring.util.SpringSupport;
 import net.shibboleth.idp.attribute.resolver.AbstractDataConnector;
 import net.shibboleth.idp.attribute.resolver.spring.BaseResolverPluginParser;
+import net.shibboleth.idp.attribute.resolver.spring.dc.http.impl.HTTPDataConnectorParser;
 import net.shibboleth.idp.attribute.resolver.spring.dc.impl.DataConnectorFactoryBean;
+import net.shibboleth.idp.attribute.resolver.spring.dc.ldap.impl.LDAPDataConnectorParser;
+import net.shibboleth.idp.attribute.resolver.spring.dc.rdbms.impl.RDBMSDataConnectorParser;
 import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
 import net.shibboleth.utilities.java.support.xml.ElementSupport;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
 /**
  * Base spring bean definition parser for data connectors. DataConnector implementations should provide a custom
  * BeanDefinitionParser by extending this class and overriding the
@@ -162,8 +166,13 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
                     SpringSupport.getAttributeValueAsList(config.getAttributeNodeNS(null, ATTR_EXPORT_NAMES)));
         }
 
-        if (config.hasAttributeNS(null, ATTR_FAIL_FAST)) {
-            // LDAP, Relational & HTTP only, limited in the schema
+        final QName typeName = DOMTypeSupport.getXSIType(config);
+        
+        if (config.hasAttributeNS(null, ATTR_FAIL_FAST) &&
+               (typeName.equals(LDAPDataConnectorParser.TYPE_NAME_RESOLVER) || 
+                typeName.equals(RDBMSDataConnectorParser.TYPE_NAME_RESOLVER) ||
+                typeName.equals(HTTPDataConnectorParser.TYPE_NAME))) {
+            // Common attribute so parse before the native/spring split
             builder.addPropertyValue("failFastInitialize", 
                     StringSupport.trimOrNull(config.getAttributeNS(null, ATTR_FAIL_FAST)));
         }

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


More information about the commits mailing list