[java-identity-provider COMMIT] in /trunk/idp-attribute-resolver-spring/src: main/java/net/shibboleth/idp/attribute/r...

noreply at shibboleth.net noreply at shibboleth.net
Tue Feb 11 10:42:02 EST 2014


Author: scantor
Date: Tue Feb 11 10:42:02 2014
New Revision: 5371

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=5371&view=rev
Log:
Pending decisions, support embedded beans, accounting for missing schemaLocation.

Modified:
    trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
    trunk/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring.xml
    trunk/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/rdbms-attribute-resolver-spring.xml

Modified: trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java?rev=5371&r1=5370&r2=5371&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java (original)
+++ trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java Tue Feb 11 10:42:02 2014
@@ -36,6 +36,7 @@
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.xml.ElementSupport;
 import net.shibboleth.utilities.java.support.xml.SerializeSupport;
+import net.shibboleth.utilities.java.support.xml.XmlConstants;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -46,7 +47,10 @@
 import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
 import org.springframework.context.support.GenericApplicationContext;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 import org.xml.sax.InputSource;
+
+import com.google.common.base.Strings;
 
 /**
  * Base spring bean definition parser for data connectors. DataConnector implementations should provide a custom
@@ -113,6 +117,26 @@
      */
     @Nonnull protected BeanFactory createBeanFactory(@Nonnull final Element springBeans) {
 
+        // Pull in the closest xsi:schemaLocation attribute we can find.
+        if (!springBeans.hasAttributeNS(XmlConstants.XSI_SCHEMA_LOCATION_ATTRIB_NAME.getNamespaceURI(),
+                XmlConstants.XSI_SCHEMA_LOCATION_ATTRIB_NAME.getLocalPart())) {
+            Node parent = springBeans.getParentNode();
+            while (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
+                final String schemaLoc = ((Element) parent).getAttributeNS(
+                        XmlConstants.XSI_SCHEMA_LOCATION_ATTRIB_NAME.getNamespaceURI(),
+                        XmlConstants.XSI_SCHEMA_LOCATION_ATTRIB_NAME.getLocalPart());
+                if (!Strings.isNullOrEmpty(schemaLoc)) {
+                    springBeans.setAttributeNS(XmlConstants.XSI_SCHEMA_LOCATION_ATTRIB_NAME.getNamespaceURI(),
+                            XmlConstants.XSI_SCHEMA_LOCATION_ATTRIB_NAME.getPrefix() + ':'
+                                + XmlConstants.XSI_SCHEMA_LOCATION_ATTRIB_NAME.getLocalPart(),
+                            schemaLoc);
+                    break;
+                } else {
+                    parent = parent.getParentNode();
+                }
+            }
+        }
+        
         GenericApplicationContext ctx = new GenericApplicationContext();
         final XmlBeanDefinitionReader definitionReader = new XmlBeanDefinitionReader(ctx);
         definitionReader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_XSD);

Modified: trunk/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring.xml?rev=5371&r1=5370&r2=5371&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring.xml (original)
+++ trunk/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring.xml Tue Feb 11 10:42:02 2014
@@ -4,10 +4,11 @@
 	xmlns:resolver="urn:mace:shibboleth:2.0:resolver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xmlns:dc="urn:mace:shibboleth:2.0:resolver:dc" xmlns:enc="urn:mace:shibboleth:2.0:attribute:encoder"
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd
-                        urn:mace:shibboleth:2.0:resolver:dc http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-dc.xsd">

[... 30 lines stripped ...]


More information about the commits mailing list