[java-identity-provider] branch master updated: Refactor and complete schema/parser/tests for issuer EA rules.

Scott Cantor cantor.2 at osu.edu
Thu May 23 08:44:06 EDT 2019


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

scantor 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=386b3e0b935c6011eb6145d3d12e9f2bd5068fa7

The following commit(s) were added to refs/heads/master by this push:
       new  386b3e0   Refactor and complete schema/parser/tests for issuer EA rules.
386b3e0 is described below

commit 386b3e0b935c6011eb6145d3d12e9f2bd5068fa7
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu May 23 08:44:04 2019 -0400

    Refactor and complete schema/parser/tests for issuer EA rules.
---
 .../impl/AttributeFilterNamespaceHandler.java      |  8 ++++++
 ...=> AbstractEntityAttributeExactRuleParser.java} | 17 ++----------
 ...=> AbstractEntityAttributeRegexRuleParser.java} | 21 +++-----------
 ...ibuteIssuerEntityAttributeExactRuleParser.java} | 27 ++++++------------
 ...ibuteIssuerEntityAttributeRegexRuleParser.java} | 28 ++++++-------------
 ...uteRequesterEntityAttributeExactRuleParser.java | 17 ++----------
 ...uteRequesterEntityAttributeRegexRuleParser.java | 17 ++----------
 ...eIssuerEntityAttributeExactRuleParserTest.java} | 11 ++++----
 ...eIssuerEntityAttributeRegexRuleParserTest.java} | 15 ++++------
 ...equesterEntityAttributeExactRuleParserTest.java |  3 +-
 .../idp/attribute/filter/policyrule/issuerEA2.xml  |  8 ++++++
 .../attribute/filter/policyrule/issuerEARegex2.xml |  6 ++++
 .../src/main/resources/schema/shibboleth-afp.xsd   | 32 +++++++++++++++++++---
 13 files changed, 91 insertions(+), 119 deletions(-)

diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterNamespaceHandler.java b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterNamespaceHandler.java
index 16139e6..84ab742 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterNamespaceHandler.java
+++ b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterNamespaceHandler.java
@@ -41,6 +41,8 @@ import net.shibboleth.idp.attribute.filter.spring.policyrule.impl.PrincipalNameR
 import net.shibboleth.idp.attribute.filter.spring.policyrule.impl.ProxiedRequesterRegexRuleParser;
 import net.shibboleth.idp.attribute.filter.spring.policyrule.impl.ProxiedRequesterRuleParser;
 import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeInMetadataRuleParser;
+import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeIssuerEntityAttributeExactRuleParser;
+import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeIssuerEntityAttributeRegexRuleParser;
 import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeRequesterEntityAttributeExactRuleParser;
 import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeRequesterEntityAttributeRegexRuleParser;
 import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeRequesterInEntityGroupRuleParser;
@@ -121,9 +123,15 @@ public class AttributeFilterNamespaceHandler extends BaseSpringNamespaceHandler
         registerBeanDefinitionParser(AttributeRequesterEntityAttributeExactRuleParser.SCHEMA_TYPE,
                 new AttributeRequesterEntityAttributeExactRuleParser());
 
+        registerBeanDefinitionParser(AttributeIssuerEntityAttributeExactRuleParser.SCHEMA_TYPE,
+                new AttributeIssuerEntityAttributeExactRuleParser());
+
         registerBeanDefinitionParser(AttributeRequesterEntityAttributeRegexRuleParser.SCHEMA_TYPE,
                 new AttributeRequesterEntityAttributeRegexRuleParser());
 
+        registerBeanDefinitionParser(AttributeIssuerEntityAttributeRegexRuleParser.SCHEMA_TYPE,
+                new AttributeIssuerEntityAttributeRegexRuleParser());
+
         registerBeanDefinitionParser(AttributeRequesterNameIdFormatRuleParser.SCHEMA_TYPE,
                 new AttributeRequesterNameIdFormatRuleParser());
 
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AbstractEntityAttributeExactRuleParser.java
similarity index 66%
copy from idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java
copy to idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AbstractEntityAttributeExactRuleParser.java
index e40a5ea..2c04fc3 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java
+++ b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AbstractEntityAttributeExactRuleParser.java
@@ -18,28 +18,15 @@
 package net.shibboleth.idp.attribute.filter.spring.saml.impl;
 
 import javax.annotation.Nonnull;
-import javax.xml.namespace.QName;
-
-import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeRequesterEntityAttributeExactPolicyRule;
-import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
 
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
 /**
- * Parser for {@link AttributeRequesterEntityAttributeExactPolicyRule}.
+ * Parser for EntityAttributeExactPolicyRule types.
  */
-public class AttributeRequesterEntityAttributeExactRuleParser extends AbstractEntityAttributeRuleParser {
-
-    /** Schema type. */
-    public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
-            "EntityAttributeExactMatch");
-
-    @Override @Nonnull protected Class<AttributeRequesterEntityAttributeExactPolicyRule> getNativeBeanClass() {
-
-        return AttributeRequesterEntityAttributeExactPolicyRule.class;
-    }
+public abstract class AbstractEntityAttributeExactRuleParser extends AbstractEntityAttributeRuleParser {
 
     /** {@inheritDoc} */
     @Override protected void doNativeParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeRegexRuleParser.java b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AbstractEntityAttributeRegexRuleParser.java
similarity index 66%
copy from idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeRegexRuleParser.java
copy to idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AbstractEntityAttributeRegexRuleParser.java
index b92549f..d037825 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeRegexRuleParser.java
+++ b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AbstractEntityAttributeRegexRuleParser.java
@@ -18,29 +18,15 @@
 package net.shibboleth.idp.attribute.filter.spring.saml.impl;
 
 import javax.annotation.Nonnull;
-import javax.xml.namespace.QName;
-
-import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeRequesterEntityAttributeRegexPolicyRule;
-import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
 
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
 /**
- * Parser for {@link AttributeRequesterEntityAttributeRegexPolicyRule}.
+ * Parser for EntityAttributeRegexPolicyRule types.
  */
-public class AttributeRequesterEntityAttributeRegexRuleParser extends AbstractEntityAttributeRuleParser {
-
-    /** Schema type. */
-    public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
-            "EntityAttributeRegexMatch");
-
-    /** {@inheritDoc} */
-    @Override @Nonnull protected Class<AttributeRequesterEntityAttributeRegexPolicyRule> getNativeBeanClass() {
-
-        return AttributeRequesterEntityAttributeRegexPolicyRule.class;
-    }
+public abstract class AbstractEntityAttributeRegexRuleParser extends AbstractEntityAttributeRuleParser {
 
     /** {@inheritDoc} */
     @Override protected void doNativeParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@@ -49,4 +35,5 @@ public class AttributeRequesterEntityAttributeRegexRuleParser extends AbstractEn
 
         builder.addPropertyValue("valueRegex", element.getAttributeNS(null, "attributeValueRegex"));
     }
-}
+    
+}
\ No newline at end of file
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeIssuerEntityAttributeExactRuleParser.java
similarity index 51%
copy from idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java
copy to idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeIssuerEntityAttributeExactRuleParser.java
index e40a5ea..856b45a 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java
+++ b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeIssuerEntityAttributeExactRuleParser.java
@@ -20,32 +20,21 @@ package net.shibboleth.idp.attribute.filter.spring.saml.impl;
 import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
-import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeRequesterEntityAttributeExactPolicyRule;
+import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeIssuerEntityAttributeExactPolicyRule;
 import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
 
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
 /**
- * Parser for {@link AttributeRequesterEntityAttributeExactPolicyRule}.
+ * Parser for {@link AttributeIssuerEntityAttributeExactPolicyRule}.
  */
-public class AttributeRequesterEntityAttributeExactRuleParser extends AbstractEntityAttributeRuleParser {
+public class AttributeIssuerEntityAttributeExactRuleParser extends AbstractEntityAttributeExactRuleParser {
 
     /** Schema type. */
-    public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
-            "EntityAttributeExactMatch");
+    @Nonnull public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
+            "IssuerEntityAttributeExactMatch");
 
-    @Override @Nonnull protected Class<AttributeRequesterEntityAttributeExactPolicyRule> getNativeBeanClass() {
+    @Override @Nonnull protected Class<AttributeIssuerEntityAttributeExactPolicyRule> getNativeBeanClass() {
 
-        return AttributeRequesterEntityAttributeExactPolicyRule.class;
+        return AttributeIssuerEntityAttributeExactPolicyRule.class;
     }
 
-    /** {@inheritDoc} */
-    @Override protected void doNativeParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        super.doNativeParse(element, parserContext, builder);
-
-        builder.addPropertyValue("value", element.getAttributeNS(null, "attributeValue"));
-    }
-}
+}
\ No newline at end of file
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeIssuerEntityAttributeRegexRuleParser.java
similarity index 53%
copy from idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java
copy to idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeIssuerEntityAttributeRegexRuleParser.java
index e40a5ea..31dc2d7 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java
+++ b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeIssuerEntityAttributeRegexRuleParser.java
@@ -20,32 +20,22 @@ package net.shibboleth.idp.attribute.filter.spring.saml.impl;
 import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
-import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeRequesterEntityAttributeExactPolicyRule;
+import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeIssuerEntityAttributeRegexPolicyRule;
 import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
 
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
 /**
- * Parser for {@link AttributeRequesterEntityAttributeExactPolicyRule}.
+ * Parser for {@link AttributeIssuerEntityAttributeRegexPolicyRule}.
  */
-public class AttributeRequesterEntityAttributeExactRuleParser extends AbstractEntityAttributeRuleParser {
+public class AttributeIssuerEntityAttributeRegexRuleParser extends AbstractEntityAttributeRegexRuleParser {
 
     /** Schema type. */
-    public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
-            "EntityAttributeExactMatch");
-
-    @Override @Nonnull protected Class<AttributeRequesterEntityAttributeExactPolicyRule> getNativeBeanClass() {
-
-        return AttributeRequesterEntityAttributeExactPolicyRule.class;
-    }
+    @Nonnull public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
+            "IssuerEntityAttributeRegexMatch");
 
     /** {@inheritDoc} */
-    @Override protected void doNativeParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        super.doNativeParse(element, parserContext, builder);
+    @Override @Nonnull protected Class<AttributeIssuerEntityAttributeRegexPolicyRule> getNativeBeanClass() {
 
-        builder.addPropertyValue("value", element.getAttributeNS(null, "attributeValue"));
+        return AttributeIssuerEntityAttributeRegexPolicyRule.class;
     }
-}
+
+}
\ No newline at end of file
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java
index e40a5ea..061d36e 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java
+++ b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeExactRuleParser.java
@@ -23,17 +23,13 @@ import javax.xml.namespace.QName;
 import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeRequesterEntityAttributeExactPolicyRule;
 import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
 
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
 /**
  * Parser for {@link AttributeRequesterEntityAttributeExactPolicyRule}.
  */
-public class AttributeRequesterEntityAttributeExactRuleParser extends AbstractEntityAttributeRuleParser {
+public class AttributeRequesterEntityAttributeExactRuleParser extends AbstractEntityAttributeExactRuleParser {
 
     /** Schema type. */
-    public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
+    @Nonnull public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
             "EntityAttributeExactMatch");
 
     @Override @Nonnull protected Class<AttributeRequesterEntityAttributeExactPolicyRule> getNativeBeanClass() {
@@ -41,11 +37,4 @@ public class AttributeRequesterEntityAttributeExactRuleParser extends AbstractEn
         return AttributeRequesterEntityAttributeExactPolicyRule.class;
     }
 
-    /** {@inheritDoc} */
-    @Override protected void doNativeParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        super.doNativeParse(element, parserContext, builder);
-
-        builder.addPropertyValue("value", element.getAttributeNS(null, "attributeValue"));
-    }
-}
+}
\ No newline at end of file
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeRegexRuleParser.java b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeRegexRuleParser.java
index b92549f..44aa186 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeRegexRuleParser.java
+++ b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/saml/impl/AttributeRequesterEntityAttributeRegexRuleParser.java
@@ -23,17 +23,13 @@ import javax.xml.namespace.QName;
 import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeRequesterEntityAttributeRegexPolicyRule;
 import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
 
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
 /**
  * Parser for {@link AttributeRequesterEntityAttributeRegexPolicyRule}.
  */
-public class AttributeRequesterEntityAttributeRegexRuleParser extends AbstractEntityAttributeRuleParser {
+public class AttributeRequesterEntityAttributeRegexRuleParser extends AbstractEntityAttributeRegexRuleParser {
 
     /** Schema type. */
-    public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
+    @Nonnull public static final QName SCHEMA_TYPE = new QName(BaseFilterParser.NAMESPACE,
             "EntityAttributeRegexMatch");
 
     /** {@inheritDoc} */
@@ -42,11 +38,4 @@ public class AttributeRequesterEntityAttributeRegexRuleParser extends AbstractEn
         return AttributeRequesterEntityAttributeRegexPolicyRule.class;
     }
 
-    /** {@inheritDoc} */
-    @Override protected void doNativeParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        super.doNativeParse(element, parserContext, builder);
-
-        builder.addPropertyValue("valueRegex", element.getAttributeNS(null, "attributeValueRegex"));
-    }
-}
+}
\ No newline at end of file
diff --git a/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java b/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeIssuerEntityAttributeExactRuleParserTest.java
similarity index 74%
copy from idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java
copy to idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeIssuerEntityAttributeExactRuleParserTest.java
index 6bf4453..0e3624f 100644
--- a/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java
+++ b/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeIssuerEntityAttributeExactRuleParserTest.java
@@ -21,19 +21,18 @@ import static org.testng.Assert.*;
 
 import org.testng.annotations.Test;
 
-import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeRequesterEntityAttributeExactPolicyRule;
+import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeIssuerEntityAttributeExactPolicyRule;
 import net.shibboleth.idp.attribute.filter.spring.BaseAttributeFilterParserTest;
-import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeRequesterEntityAttributeRegexRuleParser;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 
 /**
- * test for {@link AttributeRequesterEntityAttributeRegexRuleParser}.
+ * test for {@link AttributeIssuerEntityAttributeExactRuleParser}.
  */
-public class AttributeRequesterEntityAttributeExactRuleParserTest extends BaseAttributeFilterParserTest {
+public class AttributeIssuerEntityAttributeExactRuleParserTest extends BaseAttributeFilterParserTest {
 
     @Test public void basic() throws ComponentInitializationException {
-        AttributeRequesterEntityAttributeExactPolicyRule rule =
-                (AttributeRequesterEntityAttributeExactPolicyRule) getPolicyRule("requesterEA2.xml");
+        AttributeIssuerEntityAttributeExactPolicyRule rule =
+                (AttributeIssuerEntityAttributeExactPolicyRule) getPolicyRule("issuerEA2.xml");
 
         assertEquals(rule.getValue(), "urn:example.org:policy:ABCD1234");
         assertEquals(rule.getAttributeName(), "urn:example.org:policy");
diff --git a/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java b/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeIssuerEntityAttributeRegexRuleParserTest.java
similarity index 68%
copy from idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java
copy to idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeIssuerEntityAttributeRegexRuleParserTest.java
index 6bf4453..5948492 100644
--- a/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java
+++ b/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeIssuerEntityAttributeRegexRuleParserTest.java
@@ -21,23 +21,20 @@ import static org.testng.Assert.*;
 
 import org.testng.annotations.Test;
 
-import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeRequesterEntityAttributeExactPolicyRule;
+import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeIssuerEntityAttributeRegexPolicyRule;
 import net.shibboleth.idp.attribute.filter.spring.BaseAttributeFilterParserTest;
-import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeRequesterEntityAttributeRegexRuleParser;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 
 /**
- * test for {@link AttributeRequesterEntityAttributeRegexRuleParser}.
+ * test for {@link AttributeIssuerEntityAttributeRegexRuleParser}.
  */
-public class AttributeRequesterEntityAttributeExactRuleParserTest extends BaseAttributeFilterParserTest {
+public class AttributeIssuerEntityAttributeRegexRuleParserTest extends  BaseAttributeFilterParserTest {
 
     @Test public void basic() throws ComponentInitializationException {
-        AttributeRequesterEntityAttributeExactPolicyRule rule =
-                (AttributeRequesterEntityAttributeExactPolicyRule) getPolicyRule("requesterEA2.xml");
-
-        assertEquals(rule.getValue(), "urn:example.org:policy:ABCD1234");
+        final AttributeIssuerEntityAttributeRegexPolicyRule rule = (AttributeIssuerEntityAttributeRegexPolicyRule) getPolicyRule("issuerEARegex2.xml");
+        assertEquals(rule.getValueRegex().pattern(), "^urn:example\\.org:policy:[^:]*$");
         assertEquals(rule.getAttributeName(), "urn:example.org:policy");
-        assertTrue(rule.getIgnoreUnmappedEntityAttributes());
+        assertFalse(rule.getIgnoreUnmappedEntityAttributes());
     }
 
 }
\ No newline at end of file
diff --git a/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java b/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java
index 6bf4453..9899b1b 100644
--- a/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java
+++ b/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeRequesterEntityAttributeExactRuleParserTest.java
@@ -23,11 +23,10 @@ import org.testng.annotations.Test;
 
 import net.shibboleth.idp.attribute.filter.policyrule.saml.impl.AttributeRequesterEntityAttributeExactPolicyRule;
 import net.shibboleth.idp.attribute.filter.spring.BaseAttributeFilterParserTest;
-import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeRequesterEntityAttributeRegexRuleParser;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 
 /**
- * test for {@link AttributeRequesterEntityAttributeRegexRuleParser}.
+ * test for {@link AttributeRequesterEntityAttributeExactRuleParser}.
  */
 public class AttributeRequesterEntityAttributeExactRuleParserTest extends BaseAttributeFilterParserTest {
 
diff --git a/idp-attribute-filter-spring/src/test/resources/net/shibboleth/idp/attribute/filter/policyrule/issuerEA2.xml b/idp-attribute-filter-spring/src/test/resources/net/shibboleth/idp/attribute/filter/policyrule/issuerEA2.xml
new file mode 100644
index 0000000..4a63012
--- /dev/null
+++ b/idp-attribute-filter-spring/src/test/resources/net/shibboleth/idp/attribute/filter/policyrule/issuerEA2.xml
@@ -0,0 +1,8 @@
+<AttributeFilterPolicy id="MostBasicExample" xmlns="urn:mace:shibboleth:2.0:afp"
+    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd">
+	<PolicyRequirementRule xsi:type="IssuerEntityAttributeExactMatch"
+                       attributeName="urn:example.org:policy"
+                       attributeValue="urn:example.org:policy:ABCD1234" 
+                       ignoreUnmappedEntityAttributes="true"/>
+</AttributeFilterPolicy>
diff --git a/idp-attribute-filter-spring/src/test/resources/net/shibboleth/idp/attribute/filter/policyrule/issuerEARegex2.xml b/idp-attribute-filter-spring/src/test/resources/net/shibboleth/idp/attribute/filter/policyrule/issuerEARegex2.xml
new file mode 100644
index 0000000..ce10655
--- /dev/null
+++ b/idp-attribute-filter-spring/src/test/resources/net/shibboleth/idp/attribute/filter/policyrule/issuerEARegex2.xml
@@ -0,0 +1,6 @@
+<AttributeFilterPolicy id="MostBasicExample" xmlns="urn:mace:shibboleth:2.0:afp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd">
+	<PolicyRequirementRule
+		xsi:type="IssuerEntityAttributeRegexMatch"
+		attributeName="urn:example.org:policy" attributeValueRegex="^urn:example\.org:policy:[^:]*$" />
+</AttributeFilterPolicy>
diff --git a/idp-schema/src/main/resources/schema/shibboleth-afp.xsd b/idp-schema/src/main/resources/schema/shibboleth-afp.xsd
index 8f824cb..96352ec 100644
--- a/idp-schema/src/main/resources/schema/shibboleth-afp.xsd
+++ b/idp-schema/src/main/resources/schema/shibboleth-afp.xsd
@@ -584,8 +584,20 @@
     <complexType name="EntityAttributeExactMatch">
         <annotation>
             <documentation>
-                A match function that checks if the attribute requester contains an entity attribute with the
-                specified value.
+                A match function that checks if the attribute requester's metadata
+                contains an entity attribute with the specified value.
+            </documentation>
+        </annotation>
+        <complexContent>
+            <extension base="afp:EntityAttributeExactMatchType"/>
+        </complexContent>
+    </complexType>
+
+    <complexType name="IssuerEntityAttributeExactMatch">
+        <annotation>
+            <documentation>
+                A match function that checks if the attribute issuer's metadata
+                contains an entity attribute with the specified value.
             </documentation>
         </annotation>
         <complexContent>
@@ -625,8 +637,20 @@
     <complexType name="EntityAttributeRegexMatch">
         <annotation>
             <documentation>
-                A match function that checks if the attribute requester contains an entity attribute with a
-                value that matches the given regular expression.
+                A match function that checks if the attribute requester's metadata
+                contains an entity attribute with a value that matches the given regular expression.
+            </documentation>
+        </annotation>
+        <complexContent>
+            <extension base="afp:EntityAttributeRegexMatchType"/>
+        </complexContent>
+    </complexType>
+
+    <complexType name="IssuerEntityAttributeRegexMatch">
+        <annotation>
+            <documentation>
+                A match function that checks if the attribute issuer's metadata
+                contains an entity attribute with a value that matches the given regular expression.
             </documentation>
         </annotation>
         <complexContent>

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


More information about the commits mailing list