[java-identity-provider] 04/07: IDP-1184 Flattened schema and Attribute Definitions

Rod Widdowson rdw at steadingsoftware.com
Fri Jul 14 09:10:24 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=9c53d894ca8eadb29d8d24e4d0cec234a2a40a4f

commit 9c53d894ca8eadb29d8d24e4d0cec234a2a40a4f
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu Jul 13 16:43:18 2017 +0100

    IDP-1184 Flattened schema and Attribute Definitions
    
    https://issues.shibboleth.net/jira/browse/IDP-1184
    
    Add tests for multiple elements where they are meaningless.
    Add specific logging (on warning) where there was no warning previously.
---
 .../ad/impl/ScriptedAttributeDefinitionParser.java | 11 +++++---
 .../ad/impl/TemplateAttributeDefinitionParser.java | 14 +++++++----
 .../impl/MappedAttributeDefinitionParser.java      | 18 +++++++-------
 .../spring/dc/AbstractDataConnectorParser.java     |  2 +-
 .../spring/ad/ScriptedAttributeParserTest.java     | 26 +++++++++++--------
 .../ad/TemplateAttributeDefinitionParserTest.java  | 29 ++++++++++++++++------
 .../MappedAttributeDefinitionParserTest.java       | 26 ++++++++++++-------
 .../resolver/spring/ad/mapped/multiDefault.xml     | 16 ++++++++++++
 .../resolver/spring/ad/scriptedAttributeDupl.xml   | 18 ++++----------
 .../spring/ad/scriptedAttributeDuplFile.xml        |  9 +++++++
 .../resolver/spring/ad/templateTwoTemplate.xml     | 15 +++++++++++
 11 files changed, 126 insertions(+), 58 deletions(-)

diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java
index a7adb7e..545f522 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java
@@ -93,15 +93,20 @@ public class ScriptedAttributeDefinitionParser extends AbstractWarningAttributeD
         scriptFileElem.addAll(ElementSupport.getChildElements(config, SCRIPT_FILE_ELEMENT_NAME_RESOLVER));
         if (scriptElem != null && scriptElem.size() > 0) {
             if (scriptFileElem != null && scriptFileElem.size() > 0) {
-                log.warn(
-                        "{} Attribute definition {}: definition contains both <Script> "
-                                + "and <ScriptFile> elements, taking the <Script> element",
+                log.warn("{} definition contains both <Script> and <ScriptFile> elements, taking the "
+                        + "first <Script> element",
                         getLogPrefix(), getDefinitionId());
             }
             final String script = scriptElem.get(0).getTextContent();
             log.debug("{} Script: {}", getLogPrefix(), script);
             scriptBuilder.addPropertyValue("script", script);
         } else if (scriptFileElem != null && scriptFileElem.size() > 0) {
+            if (scriptFileElem.size() > 1) {
+                log.warn("{} Attribute definition {}: definition contains multiple " 
+                        + "<ScriptFile> elements, taking the first only.",
+                        getLogPrefix(), getDefinitionId());                
+            }
+            
             final String scriptFile = scriptFileElem.get(0).getTextContent();
             log.debug("{} Script file: {}", getLogPrefix(), scriptFile);
             scriptBuilder.addPropertyValue("resource", scriptFile);
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
index 444fe25..71e2254 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
@@ -23,6 +23,11 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
+import net.shibboleth.idp.attribute.resolver.ad.impl.TemplateAttributeDefinition;
+import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.utilities.java.support.xml.ElementSupport;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
@@ -30,11 +35,6 @@ import org.springframework.beans.factory.support.ManagedList;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
-import net.shibboleth.idp.attribute.resolver.ad.impl.TemplateAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
 /**
  * Spring bean definition parser for templated attribute definition elements.
  */
@@ -80,6 +80,10 @@ public class TemplateAttributeDefinitionParser extends AbstractWarningAttributeD
         final List<Element> templateElements = ElementSupport.getChildElements(config, TEMPLATE_ELEMENT_NAME_AD);
         templateElements.addAll(ElementSupport.getChildElements(config, TEMPLATE_ELEMENT_NAME_RESOLVER));
         if (null != templateElements && templateElements.size() >= 1) {
+            if (templateElements.size() > 1) {
+                log.warn("{} Too many <Template> elements, taking the first");
+            }
+            
             final String templateText = StringSupport.trimOrNull(templateElements.get(0).getTextContent());
             log.debug("{} Template is '{}'", getLogPrefix(), templateText);
 
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
index bd130e2..69e4b17 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
@@ -23,14 +23,6 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.config.BeanDefinition;
-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.ad.mapped.impl.MappedAttributeDefinition;
 import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
@@ -39,6 +31,14 @@ import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamesp
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.xml.ElementSupport;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.BeanCreationException;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Element;
+
 /** Bean definition parser for a {@link MappedAttributeDefinition}. */
 public class MappedAttributeDefinitionParser extends BaseAttributeDefinitionParser {
 
@@ -79,7 +79,7 @@ public class MappedAttributeDefinitionParser extends BaseAttributeDefinitionPars
 
         if (null != defaultValueElements && defaultValueElements.size() > 0) {
             if (defaultValueElements.size() > 1) {
-                log.warn("{} More than one <DefaultValue> specified");
+                log.warn("{} More than one <DefaultValue> specified, taking the first");
             }
             final Element defaultValueElement = defaultValueElements.get(0);
             defaultValue = StringSupport.trimOrNull(defaultValueElement.getTextContent());
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 85db532..a132dd7 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
@@ -109,7 +109,7 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
 
         if (failoverConnector != null && !failoverConnector.isEmpty()) {
             if (failoverConnector.size() > 1) {
-                log.warn("{} More than one failover data connector specified, taking the first", 
+                 log.warn("{} More than one failover data connector specified, taking the first", 
                         getLogPrefix());                
             }
             final String connectorId = StringSupport.trimOrNull(failoverConnector.get(0).getAttributeNS(null, "ref"));
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/ScriptedAttributeParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/ScriptedAttributeParserTest.java
index 5faa40f..8d56ee7 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/ScriptedAttributeParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/ScriptedAttributeParserTest.java
@@ -17,23 +17,23 @@
 
 package net.shibboleth.idp.attribute.resolver.spring.ad;
 
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.BeanDefinitionStoreException;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
 import net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition;
 import net.shibboleth.idp.attribute.resolver.spring.BaseAttributeDefinitionParserTest;
 import net.shibboleth.idp.attribute.resolver.spring.ad.impl.ScriptedAttributeDefinitionParser;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
+import org.springframework.beans.factory.BeanCreationException;
+import org.springframework.beans.factory.BeanDefinitionStoreException;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
 /**
  * Test for {@link ScriptedAttributeDefinitionParser}.
  */
 public class ScriptedAttributeParserTest extends BaseAttributeDefinitionParserTest {
 
     @Test public void inline() {
-        ScriptedAttributeDefinition attrDef =
+        final ScriptedAttributeDefinition attrDef =
                 getAttributeDefn("scriptedAttributeInline.xml", ScriptedAttributeDefinition.class);
 
         Assert.assertEquals(attrDef.getId(), "scriptedInline");
@@ -42,7 +42,7 @@ public class ScriptedAttributeParserTest extends BaseAttributeDefinitionParserTe
     }
 
     @Test public void file() {
-        ScriptedAttributeDefinition attrDef =
+        final ScriptedAttributeDefinition attrDef =
                 getAttributeDefn("scriptedAttributeFile.xml", ScriptedAttributeDefinition.class);
 
         Assert.assertEquals(attrDef.getId(), "scriptedFile");
@@ -54,7 +54,7 @@ public class ScriptedAttributeParserTest extends BaseAttributeDefinitionParserTe
     }
 
     @Test public void resolverInline() {
-        ScriptedAttributeDefinition attrDef =
+        final ScriptedAttributeDefinition attrDef =
                 getAttributeDefn("resolver/scriptedAttributeInline.xml", ScriptedAttributeDefinition.class);
 
         Assert.assertEquals(attrDef.getId(), "scriptedInline");
@@ -63,7 +63,7 @@ public class ScriptedAttributeParserTest extends BaseAttributeDefinitionParserTe
     }
 
     @Test public void resolverFile() {
-        ScriptedAttributeDefinition attrDef =
+        final ScriptedAttributeDefinition attrDef =
                 getAttributeDefn("resolver/scriptedAttributeFile.xml", ScriptedAttributeDefinition.class);
 
         Assert.assertEquals(attrDef.getId(), "scriptedFile");
@@ -81,6 +81,12 @@ public class ScriptedAttributeParserTest extends BaseAttributeDefinitionParserTe
         Assert.assertEquals(attrDef.getId(), "scriptedDupl");
         Assert.assertEquals(attrDef.getScript().getScriptLanguage(), "javascript");
         Assert.assertEquals(StringSupport.trim(attrDef.getScript().getScript()), "stuff=\"stuff\";");
+
+        attrDef = getAttributeDefn("scriptedAttributeDuplFile.xml", ScriptedAttributeDefinition.class, true);
+
+        Assert.assertEquals(attrDef.getId(), "scriptedDuplFile");
+        Assert.assertEquals(attrDef.getScript().getScriptLanguage(), "javascript");
+        Assert.assertEquals(StringSupport.trim(attrDef.getScript().getScript()), "foo=bar();");
     }
 
     @Test public void bad() {
@@ -96,7 +102,7 @@ public class ScriptedAttributeParserTest extends BaseAttributeDefinitionParserTe
         try {
             getAttributeDefn("scriptedAttributeAbsent.xml", ScriptedAttributeDefinition.class);
             Assert.fail("Missing script worked?");
-        } catch (BeanDefinitionStoreException e) {
+        } catch (final BeanDefinitionStoreException e) {
             // OK
         }
     }
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/TemplateAttributeDefinitionParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/TemplateAttributeDefinitionParserTest.java
index e7df1bc..79a6615 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/TemplateAttributeDefinitionParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/TemplateAttributeDefinitionParserTest.java
@@ -17,15 +17,15 @@
 
 package net.shibboleth.idp.attribute.resolver.spring.ad;
 
-import org.springframework.beans.factory.BeanCreationException;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
 import net.shibboleth.idp.attribute.resolver.ad.impl.TemplateAttributeDefinition;
 import net.shibboleth.idp.attribute.resolver.spring.BaseAttributeDefinitionParserTest;
 import net.shibboleth.idp.attribute.resolver.spring.ad.impl.CryptoTransientIdAttributeDefinitionParser;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 
+import org.springframework.beans.factory.BeanCreationException;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
 /**
  * test for {@link CryptoTransientIdAttributeDefinitionParser}
  */
@@ -33,7 +33,7 @@ public class TemplateAttributeDefinitionParserTest extends BaseAttributeDefiniti
 
     @Test(enabled = false) public void noAttr() throws ComponentInitializationException {
 
-        TemplateAttributeDefinition defn =
+        final TemplateAttributeDefinition defn =
                 getAttributeDefn("templateNoAttributes.xml", "externalBeans.xml", TemplateAttributeDefinition.class);
 
         Assert.assertEquals(defn.getId(), "templateId");
@@ -46,10 +46,10 @@ public class TemplateAttributeDefinitionParserTest extends BaseAttributeDefiniti
         try {
             getAttributeDefn("templateAttributes.xml", "externalBeans.xml", TemplateAttributeDefinition.class);
             Assert.fail("should not find bean");
-        } catch (BeanCreationException e) {
+        } catch (final BeanCreationException e) {
             // OK
         }
-        TemplateAttributeDefinition defn =
+        final TemplateAttributeDefinition defn =
                 getAttributeDefn("templateAttributes.xml", "velocity2.xml", TemplateAttributeDefinition.class);
 
         Assert.assertEquals(defn.getId(), "templateIdAttr");
@@ -61,7 +61,7 @@ public class TemplateAttributeDefinitionParserTest extends BaseAttributeDefiniti
 
     @Test public void resolver() throws ComponentInitializationException {
 
-        TemplateAttributeDefinition defn =
+        final TemplateAttributeDefinition defn =
                 getAttributeDefn("resolver/templateAttributes.xml", "velocity2.xml", TemplateAttributeDefinition.class);
 
         Assert.assertEquals(defn.getId(), "templateIdAttr");
@@ -70,4 +70,17 @@ public class TemplateAttributeDefinitionParserTest extends BaseAttributeDefiniti
         Assert.assertTrue(defn.getSourceAttributes().contains("att1"));
         Assert.assertTrue(defn.getSourceAttributes().contains("att2"));
     }
+    
+    @Test public void dupl() throws ComponentInitializationException {
+
+        final TemplateAttributeDefinition defn =
+                getAttributeDefn("templateTwoTemplate.xml", "velocity2.xml", TemplateAttributeDefinition.class);
+
+        Assert.assertEquals(defn.getId(), "templateIdAttr");
+        Assert.assertEquals(defn.getTemplateText(), "TheTemplate");
+        Assert.assertEquals(defn.getSourceAttributes().size(), 2);
+        Assert.assertTrue(defn.getSourceAttributes().contains("att1"));
+        Assert.assertTrue(defn.getSourceAttributes().contains("att2"));
+    }
+
 }
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/MappedAttributeDefinitionParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/MappedAttributeDefinitionParserTest.java
index 494220d..b6588c7 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/MappedAttributeDefinitionParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/MappedAttributeDefinitionParserTest.java
@@ -17,25 +17,33 @@
 
 package net.shibboleth.idp.attribute.resolver.spring.ad.mapped;
 
-import org.springframework.beans.factory.BeanDefinitionStoreException;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
 import net.shibboleth.idp.attribute.resolver.ad.mapped.impl.MappedAttributeDefinition;
 import net.shibboleth.idp.attribute.resolver.spring.BaseAttributeDefinitionParserTest;
 import net.shibboleth.idp.attribute.resolver.spring.ad.mapped.impl.MappedAttributeDefinitionParser;
 
+import org.springframework.beans.factory.BeanDefinitionStoreException;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
 /**
  * Test for {@link MappedAttributeDefinitionParser}.
  */
 public class MappedAttributeDefinitionParserTest extends BaseAttributeDefinitionParserTest {
 
-    private MappedAttributeDefinition getDefinition(String fileName) {
+    private MappedAttributeDefinition getDefinition(final String fileName) {
         return getAttributeDefn("mapped/" + fileName, MappedAttributeDefinition.class);
     }
 
     @Test public void defaultCase() {
-        MappedAttributeDefinition defn = getDefinition("mapped.xml");
+        final MappedAttributeDefinition defn = getDefinition("mapped.xml");
+
+        Assert.assertTrue(defn.isPassThru());
+        Assert.assertEquals(defn.getValueMaps().size(), 2);
+        Assert.assertEquals(defn.getDefaultAttributeValue().getValue(), "foobar");
+    }
+
+    @Test public void multiDefault() {
+        final MappedAttributeDefinition defn = getDefinition("multiDefault.xml");
 
         Assert.assertTrue(defn.isPassThru());
         Assert.assertEquals(defn.getValueMaps().size(), 2);
@@ -43,7 +51,7 @@ public class MappedAttributeDefinitionParserTest extends BaseAttributeDefinition
     }
 
     @Test public void resolver() {
-        MappedAttributeDefinition defn = getDefinition("resolver/mapped.xml");
+        final MappedAttributeDefinition defn = getDefinition("resolver/mapped.xml");
 
         Assert.assertTrue(defn.isPassThru());
         Assert.assertEquals(defn.getValueMaps().size(), 2);
@@ -51,7 +59,7 @@ public class MappedAttributeDefinitionParserTest extends BaseAttributeDefinition
     }
 
     @Test public void noDefault() {
-        MappedAttributeDefinition defn = getDefinition("mappedNoDefault.xml");
+        final MappedAttributeDefinition defn = getDefinition("mappedNoDefault.xml");
 
         Assert.assertFalse(defn.isPassThru());
         Assert.assertEquals(defn.getValueMaps().size(), 1);
@@ -63,7 +71,7 @@ public class MappedAttributeDefinitionParserTest extends BaseAttributeDefinition
         try {
             getDefinition("mappedNoValueMap.xml");
             Assert.fail();
-        } catch (BeanDefinitionStoreException e) {
+        } catch (final BeanDefinitionStoreException e) {
             // OK
         }
     }
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/multiDefault.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/multiDefault.xml
new file mode 100644
index 0000000..d70fcf7
--- /dev/null
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/multiDefault.xml
@@ -0,0 +1,16 @@
+<AttributeDefintion xsi:type="Mapped" id="Mapped"
+	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">
+    <DefaultValue passThru="true">foobar</DefaultValue>
+	<ValueMap>
+		<ReturnValue>return</ReturnValue>
+		<SourceValue>source</SourceValue>
+	</ValueMap>
+    <DefaultValue passThru="true">foobar2</DefaultValue>
+	<ValueMap>
+		<ReturnValue>return1</ReturnValue>
+		<SourceValue>source2</SourceValue>
+	</ValueMap>
+    <DefaultValue passThru="true">foobar3</DefaultValue>
+    <Dependency xmlns:resolver="urn:mace:shibboleth:2.0:resolver" ref="TheOrphan" />
+</AttributeDefintion>
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/scriptedAttributeDupl.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/scriptedAttributeDupl.xml
index 0d1049d..4e36a1b 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/scriptedAttributeDupl.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/scriptedAttributeDupl.xml
@@ -1,17 +1,9 @@
  <AttributeDefinition 
     xmlns="urn:mace:shibboleth:2.0:resolver"
-    xmlns:ad="urn:mace:shibboleth:2.0:resolver:ad"
-    xmlns:enc="urn:mace:shibboleth:2.0:attribute:encoder" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     dependencyOnly="1"
-    xsi:type="ad:Script" id="scriptedDupl"
-    xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd
-                        urn:mace:shibboleth:2.0:resolver:pc http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-pc.xsd
-                        urn:mace:shibboleth:2.0:resolver:ad http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-ad.xsd
-                        urn:mace:shibboleth:2.0:resolver:dc http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-dc.xsd
-                        urn:mace:shibboleth:2.0:attribute:encoder http://shibboleth.net/schema/idp/shibboleth-attribute-encoder.xsd
-                        urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-    <!--  This file is known to be schema invalid.  The test supresses schema testing. -->                        
-    <ad:Script>stuff="stuff";</ad:Script>
-    <ad:ScriptFile>src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/file.script</ad:ScriptFile>
-    </AttributeDefinition>
\ No newline at end of file
+    xsi:type="ScriptedAttribute" id="scriptedDupl"
+    xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd">
+    <Script>stuff="stuff";</Script>
+    <ScriptFile>src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/file.script</ScriptFile>
+</AttributeDefinition>
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/scriptedAttributeDuplFile.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/scriptedAttributeDuplFile.xml
new file mode 100644
index 0000000..94fb039
--- /dev/null
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/scriptedAttributeDuplFile.xml
@@ -0,0 +1,9 @@
+ <AttributeDefinition 
+    xmlns="urn:mace:shibboleth:2.0:resolver"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    dependencyOnly="1"
+    xsi:type="ScriptedAttribute" id="scriptedDuplFile"
+    xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd">
+    <ScriptFile>src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/file.script</ScriptFile>
+    <ScriptFile>src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/file.script2</ScriptFile>
+</AttributeDefinition>
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/templateTwoTemplate.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/templateTwoTemplate.xml
new file mode 100644
index 0000000..72a3634
--- /dev/null
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/ad/templateTwoTemplate.xml
@@ -0,0 +1,15 @@
+ <AttributeDefinition 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xmlns="urn:mace:shibboleth:2.0:resolver"
+    id="templateIdAttr"
+    velocityEngine="otherVe"
+    xsi:type="Template"
+    xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd" >
+    
+  <Dependency xmlns:resolver="urn:mace:shibboleth:2.0:resolver" ref="TheOrphan"/>
+  <Template>TheTemplate</Template>
+  <SourceAttribute>att1</SourceAttribute>
+  <Template>TheTemplate</Template>
+  <SourceAttribute>att2</SourceAttribute>
+  <Template>TheTemplate</Template>
+</AttributeDefinition>
\ No newline at end of file

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


More information about the commits mailing list