[java-identity-provider] 03/07: IDP-1184 Flattened Schema and FailoverDataConnector

Rod Widdowson rdw at steadingsoftware.com
Fri Jul 14 09:10:23 EDT 2017


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=70c98d20e38b178e3fd497a6cc363e1e07bf3e40

commit 70c98d20e38b178e3fd497a6cc363e1e07bf3e40
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu Jul 13 16:22:31 2017 +0100

    IDP-1184 Flattened Schema and FailoverDataConnector
    
    https://issues.shibboleth.net/jira/browse/IDP-1184
    
    Deprecate FailoverDataConnector for static data connectors.
    Add test for this, and for the existing warning on having more
    than one FailoverDataConnector.
---
 .../spring/dc/impl/StaticDataConnectorParser.java       |  9 ++++++++-
 .../spring/dc/StaticDataConnectorParserTest.java        | 16 ++++++++++++++++
 .../resolver/spring/dc/staticMultiFallback.xml          | 17 +++++++++++++++++
 3 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
index 5e3564d..77e33fa 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
@@ -26,6 +26,8 @@ import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.StringAttributeValue;
 import net.shibboleth.idp.attribute.resolver.dc.impl.StaticDataConnector;
 import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.xml.ElementSupport;
 
@@ -66,7 +68,12 @@ public class StaticDataConnectorParser extends AbstractWarningDataConnectorParse
     /** {@inheritDoc} */
     @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
-
+        
+        if (!ElementSupport.getChildElements(config, FAILOVER_DATA_CONNECTOR_ELEMENT_NAME).isEmpty()) {
+            DeprecationSupport.warnOnce(ObjectType.ELEMENT, 
+                    FAILOVER_DATA_CONNECTOR_ELEMENT_NAME.getLocalPart(), TYPE_NAME_RESOLVER.toString(), null);
+        }
+        
         final List<Element> children = ElementSupport.getChildElements(config, ATTRIBUTE_ELEMENT_NAME_DC);
         children.addAll(ElementSupport.getChildElements(config, ATTRIBUTE_ELEMENT_NAME_RESOLVER));
         final List<BeanDefinition> attributes = new ManagedList<>(children.size());
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/StaticDataConnectorParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/StaticDataConnectorParserTest.java
index e3d66fe..6407017 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/StaticDataConnectorParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/StaticDataConnectorParserTest.java
@@ -47,6 +47,22 @@ public class StaticDataConnectorParserTest extends BaseAttributeDefinitionParser
         Assert.assertEquals(values.size(), 1);
         Assert.assertTrue(values.contains(new StringAttributeValue("member")));
     }
+    
+    @Test public void multiFallback() {
+        final StaticDataConnector connector = getDataConnector("staticMultiFallback.xml", StaticDataConnector.class);
+        Assert.assertEquals(connector.getAttributes().keySet().size(), 2);
+        final IdPAttribute epe = connector.getAttributes().get("eduPersonEntitlement");
+        List<IdPAttributeValue<?>> values = epe.getValues();
+        Assert.assertEquals(values.size(), 2);
+        Assert.assertTrue(values.contains(new StringAttributeValue("urn:example.org:entitlement:entitlement1")));
+        Assert.assertTrue(values.contains(new StringAttributeValue("urn:mace:dir:entitlement:common-lib-terms")));
+        
+        values = connector.getAttributes().get("staticEpA").getValues();
+        Assert.assertEquals(values.size(), 1);
+        Assert.assertTrue(values.contains(new StringAttributeValue("member")));
+    }
+
+
 
     @Test public void resolver() {
         final StaticDataConnector connector = getDataConnector("resolver/staticAttributes.xml", StaticDataConnector.class);
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/staticMultiFallback.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/staticMultiFallback.xml
new file mode 100644
index 0000000..e93483f
--- /dev/null
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/staticMultiFallback.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<DataConnector id="staticAttributes"
+	xsi:type="Static" xmlns="urn:mace:shibboleth:2.0:resolver"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	
+	xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd">
+    <FailoverDataConnector ref="foo"/>
+	<Attribute id="staticEpA">
+		<Value>member</Value>
+	</Attribute>
+    <FailoverDataConnector ref="foo"/>
+	<Attribute id="eduPersonEntitlement">
+		<Value>urn:example.org:entitlement:entitlement1</Value>
+		<Value>urn:mace:dir:entitlement:common-lib-terms</Value>
+	</Attribute>
+    <FailoverDataConnector ref="foo"/>
+</DataConnector>

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


More information about the commits mailing list