[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