[java-identity-provider] branch master updated: IDP-1456 - Apply attribute filtering code to inbound attributes

Scott Cantor cantor.2 at osu.edu
Thu May 30 20:18:20 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=7efb10269e9c5b9f03da19c8e4d74afde712b6b1

The following commit(s) were added to refs/heads/master by this push:
       new  7efb102   IDP-1456 - Apply attribute filtering code to inbound attributes
7efb102 is described below

commit 7efb10269e9c5b9f03da19c8e4d74afde712b6b1
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu May 30 20:18:06 2019 -0400

    IDP-1456 - Apply attribute filtering code to inbound attributes
    
    https://issues.shibboleth.net/jira/browse/IDP-1456
    
    Downgrade some warnings and FAIL results for "expected"  states.
---
 .../attribute/filter/impl/AttributeFilterImpl.java | 34 +++++++------------
 .../impl/AttributeIssuerPolicyRule.java            |  4 +--
 .../impl/AttributeIssuerRegexpPolicyRule.java      |  4 +--
 .../impl/AttributeRequesterPolicyRule.java         |  4 +--
 .../impl/AttributeRequesterRegexpPolicyRule.java   |  4 +--
 .../impl/PrincipalNamePolicyRule.java              |  4 +--
 .../impl/PrincipalNameRegexpPolicyRule.java        |  4 +--
 .../impl/AbstractEntityAttributePolicyRule.java    |  2 +-
 .../AttributeRequesterInEntityGroupPolicyRule.java | 30 +++++++++++++----
 ...ributeRequesterNameIDFormatExactPolicyRule.java | 38 ++++++++++++----------
 .../impl/AttributeIssuerPolicyRuleTest.java        |  4 +--
 .../impl/AttributeIssuerRegexpPolicyRuleTest.java  |  4 +--
 .../impl/AttributeRequesterPolicyRuleTest.java     |  4 +--
 .../AttributeRequesterRegexpPolicyRuleTest.java    |  4 +--
 .../impl/PrincipalNamePolicyRuleTest.java          |  4 +--
 .../impl/PrincipalNameRegexpPolicyRuleTest.java    |  4 +--
 ...ributeRequesterInEntityGroupPolicyRuleTest.java |  4 +--
 17 files changed, 83 insertions(+), 73 deletions(-)

diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
index 0922d2f..49e48d3 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
@@ -34,7 +34,6 @@ import net.shibboleth.idp.attribute.filter.AttributeFilterException;
 import net.shibboleth.idp.attribute.filter.AttributeFilterPolicy;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterWorkContext;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.NullableElements;
@@ -44,9 +43,9 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
-import org.opensaml.messaging.context.navigate.ParentContextLookup;
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.messaging.context.navigate.RootContextLookup;
 import org.opensaml.profile.context.MetricContext;
-import org.opensaml.profile.context.ProfileRequestContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -67,8 +66,8 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
     /** Log prefix. */
     private String logPrefix;
 
-    /** Strategy to get the {@link ProfileRequestContext}. */
-    @Nonnull private Function<AttributeFilterContext,ProfileRequestContext> profileContextStrategy;
+    /** Strategy to get the {@link MetricContext} for timing. */
+    @Nonnull private Function<AttributeFilterContext,MetricContext> metricContextLookupStrategy;
 
     /**
      * Constructor.
@@ -84,10 +83,7 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
         CollectionSupport.addIf(checkedPolicies, policies, Predicates.notNull());
         filterPolicies = ImmutableList.copyOf(Iterables.filter(checkedPolicies, Predicates.notNull()));
         
-        // Defaults to ProfileRequestContext -> RelyingPartyContext -> AttributeFilterContext.
-        profileContextStrategy =
-                new ParentContextLookup<RelyingPartyContext, ProfileRequestContext>().compose(
-                        new ParentContextLookup<AttributeFilterContext, RelyingPartyContext>());
+        metricContextLookupStrategy = new ChildContextLookup<>(MetricContext.class).compose(new RootContextLookup<>());
     }
 
     /**
@@ -227,13 +223,10 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
      * @return true iff the {@link #stopTimer(AttributeFilterContext)} method needs to be called
      */
     private boolean startTimer(@Nonnull final AttributeFilterContext filterContext) {
-        final ProfileRequestContext prc = profileContextStrategy.apply(filterContext);
-        if (prc != null) {
-            final MetricContext timerCtx = prc.getSubcontext(MetricContext.class);
-            if (timerCtx != null) {
-                timerCtx.start(getId());
-                return true;
-            }
+        final MetricContext timerCtx = metricContextLookupStrategy.apply(filterContext);
+        if (timerCtx != null) {
+            timerCtx.start(getId());
+            return true;
         }
         return false;
     }
@@ -244,12 +237,9 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
      * @param filterContext attribute filtering context
      */
     private void stopTimer(@Nonnull final AttributeFilterContext filterContext) {
-        final ProfileRequestContext prc = profileContextStrategy.apply(filterContext);
-        if (prc != null) {
-            final MetricContext timerCtx = prc.getSubcontext(MetricContext.class);
-            if (timerCtx != null) {
-                timerCtx.stop(getId());
-            }
+        final MetricContext timerCtx = metricContextLookupStrategy.apply(filterContext);
+        if (timerCtx != null) {
+            timerCtx.stop(getId());
         }
     }
 
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java
index 3ff3f16..f612f56 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java
@@ -48,8 +48,8 @@ public class AttributeIssuerPolicyRule extends AbstractStringPolicyRule {
 
         final String issuer = filterContext.getAttributeIssuerID();
         if (null == issuer) {
-            log.warn("{} No attribute issuer found for comparison", getLogPrefix());
-            return Tristate.FAIL;
+            log.debug("{} No attribute issuer found for comparison", getLogPrefix());
+            return Tristate.FALSE;
         }
         log.debug("{} Found attribute issuer: {}", getLogPrefix(), issuer);
 
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java
index 1cb122a..045d83c 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java
@@ -48,8 +48,8 @@ public class AttributeIssuerRegexpPolicyRule extends AbstractRegexpPolicyRule {
 
         final String issuer = filterContext.getAttributeIssuerID();
         if (null == issuer) {
-            log.warn("{} No attribute issuer found for comparison", getLogPrefix());
-            return Tristate.FAIL;
+            log.debug("{} No attribute issuer found for comparison", getLogPrefix());
+            return Tristate.FALSE;
         }
         log.debug("{} Found attribute issuer: {}", getLogPrefix(), issuer);
 
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java
index 0f380ec..c9596c5 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java
@@ -48,8 +48,8 @@ public class AttributeRequesterPolicyRule extends AbstractStringPolicyRule {
 
         final String requester = filterContext.getAttributeRecipientID();
         if (null == requester) {
-            log.warn("{} No attribute requester found for comparison", getLogPrefix());
-            return Tristate.FAIL;
+            log.debug("{} No attribute requester found for comparison", getLogPrefix());
+            return Tristate.FALSE;
         }
         log.debug("{} Found attribute requester: {}", getLogPrefix(), requester);
 
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java
index a0bccf6..ecde2cd 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java
@@ -48,8 +48,8 @@ public class AttributeRequesterRegexpPolicyRule extends AbstractRegexpPolicyRule
 
         final String requester = filterContext.getAttributeRecipientID();
         if (null == requester) {
-            log.warn("{} No attribute requester found for comparison", getLogPrefix());
-            return Tristate.FAIL;
+            log.debug("{} No attribute requester found for comparison", getLogPrefix());
+            return Tristate.FALSE;
         }
         log.debug("{} Found attribute requester: {}", getLogPrefix(), requester);
 
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java
index c16f211..7fe744a 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java
@@ -49,8 +49,8 @@ public class PrincipalNamePolicyRule extends AbstractStringPolicyRule {
         final String principal = filterContext.getPrincipal();
 
         if (null == principal) {
-            log.warn("{} No principal found for comparison", getLogPrefix());
-            return Tristate.FAIL;
+            log.debug("{} No principal found for comparison", getLogPrefix());
+            return Tristate.FALSE;
         }
         log.debug("{} Found principal: {}", getLogPrefix(), principal);
 
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java
index aacd43a..721560f 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java
@@ -46,8 +46,8 @@ public class PrincipalNameRegexpPolicyRule extends AbstractRegexpPolicyRule {
 
         final String principal = filterContext.getPrincipal();
         if (null == principal) {
-            log.warn("{} No principal found for comparison", getLogPrefix());
-            return Tristate.FAIL;
+            log.debug("{} No principal found for comparison", getLogPrefix());
+            return Tristate.FALSE;
         }
         log.debug("{} Found principal: {}", getLogPrefix(), principal);
 
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
index f5e7eb7..a27dc33 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
@@ -173,7 +173,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
 
         final EntityDescriptor entityDescriptor = getEntityMetadata(filterContext);
         if (entityDescriptor == null) {
-            log.info("{} No metadata available for entity, returning FALSE", getLogPrefix());
+            log.debug("{} No metadata available for entity, returning FALSE", getLogPrefix());
             return Tristate.FALSE;
         }
 
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRule.java
index d366bab..320c90d 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRule.java
@@ -25,6 +25,9 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -45,7 +48,7 @@ public class AttributeRequesterInEntityGroupPolicyRule extends AbstractPolicyRul
     @Nonnull private final Logger log = LoggerFactory.getLogger(AttributeRequesterInEntityGroupPolicyRule.class);
     
     /** The entity group to match against. */
-    @Nullable private String entityGroup;
+    @NonnullAfterInit @NotEmpty private String entityGroup;
     
     /** Whether to search metadata for AffiliationDescriptor membership. */
     private boolean checkAffiliations;
@@ -55,7 +58,7 @@ public class AttributeRequesterInEntityGroupPolicyRule extends AbstractPolicyRul
      * 
      * @return entity group to match against
      */
-    @Nullable public String getEntityGroup() {
+    @NonnullAfterInit @NotEmpty public String getEntityGroup() {
         return entityGroup;
     }
 
@@ -65,6 +68,8 @@ public class AttributeRequesterInEntityGroupPolicyRule extends AbstractPolicyRul
      * @param group entity group to match against
      */
     public void setEntityGroup(@Nullable final String group) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
         entityGroup = StringSupport.trimOrNull(group);
     }
     
@@ -80,9 +85,21 @@ public class AttributeRequesterInEntityGroupPolicyRule extends AbstractPolicyRul
      * @since 3.4.0
      */
     public void setCheckAffiliations(final boolean flag) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
         checkAffiliations = flag;
     }
 
+    /** {@inheritDoc} */
+    @Override
+    protected void doInitialize() throws ComponentInitializationException {
+        super.doInitialize();
+        
+        if (entityGroup == null) {
+            throw new ComponentInitializationException("entityGroup cannot be null");
+        }
+    }
+
     /**
      * Gets the entity descriptor for the entity to check.
      * 
@@ -94,7 +111,7 @@ public class AttributeRequesterInEntityGroupPolicyRule extends AbstractPolicyRul
         final SAMLMetadataContext metadataContext = filterContext.getRequesterMetadataContext();
 
         if (null == metadataContext) {
-            log.warn("{} Could not locate SP metadata context", getLogPrefix());
+            log.debug("{} No requester metadata found", getLogPrefix());
             return null;
         }
         return metadataContext.getEntityDescriptor();
@@ -110,12 +127,12 @@ public class AttributeRequesterInEntityGroupPolicyRule extends AbstractPolicyRul
      */
     @Override
     @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext input) {
+        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
 
         Constraint.isNotNull(input, "Context must be supplied");
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
 
-        if (entityGroup == null) {
-            log.warn("{} No entity group specified, unable to check if entity is in group", getLogPrefix());
+        final EntityDescriptor entity = getEntityMetadata(input);
+        if (entity == null) {
             return Tristate.FALSE;
         }
 
@@ -123,7 +140,6 @@ public class AttributeRequesterInEntityGroupPolicyRule extends AbstractPolicyRul
                 new EntityGroupNamePredicate(Collections.singleton(entityGroup),
                         checkAffiliations ? input.getMetadataResolver() : null);
         
-        final EntityDescriptor entity = getEntityMetadata(input);
         return predicate.test(entity) ? Tristate.TRUE : Tristate.FALSE;
     }
 
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterNameIDFormatExactPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterNameIDFormatExactPolicyRule.java
index 231e4d9..67bfea5 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterNameIDFormatExactPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterNameIDFormatExactPolicyRule.java
@@ -25,6 +25,7 @@ import javax.annotation.Nullable;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -40,17 +41,17 @@ import org.slf4j.LoggerFactory;
 public class AttributeRequesterNameIDFormatExactPolicyRule extends AbstractPolicyRule {
 
     /** Class logger. */
-    private final Logger log = LoggerFactory.getLogger(AttributeRequesterNameIDFormatExactPolicyRule.class);
+    @Nonnull private final Logger log = LoggerFactory.getLogger(AttributeRequesterNameIDFormatExactPolicyRule.class);
 
     /** The NameID format that needs to be supported by the entity. */
-    private String nameIdFormat;
+    @NonnullAfterInit @NotEmpty private String nameIdFormat;
 
     /**
      * Get the NameID format that needs to be supported by the entity.
      * 
      * @return NameID format that needs to be supported by the entity
      */
-    @NonnullAfterInit public String getNameIdFormat() {
+    @NonnullAfterInit @NotEmpty public String getNameIdFormat() {
         return nameIdFormat;
     }
 
@@ -59,10 +60,22 @@ public class AttributeRequesterNameIDFormatExactPolicyRule extends AbstractPolic
      * 
      * @param format NameID format that needs to be supported by the entity
      */
-    public void setNameIdFormat(final String format) {
+    public void setNameIdFormat(@Nullable final String format) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
         nameIdFormat = StringSupport.trimOrNull(format);
     }
 
+    /** {@inheritDoc} */
+    @Override
+    protected void doInitialize() throws ComponentInitializationException {
+        super.doInitialize();
+        
+        if (null == nameIdFormat) {
+            throw new ComponentInitializationException(getLogPrefix() + " No NameID format specified");
+        }
+    }
+
     /**
      * Gets the SSO role descriptor for the entity to be checked.
      * 
@@ -70,16 +83,16 @@ public class AttributeRequesterNameIDFormatExactPolicyRule extends AbstractPolic
      * 
      * @return the SSO role descriptor of the entity or null if the entity does not have such a descriptor
      */
-    @Nullable protected SSODescriptor getEntitySSODescriptor(final AttributeFilterContext filterContext) {
+    @Nullable protected SSODescriptor getEntitySSODescriptor(@Nonnull final AttributeFilterContext filterContext) {
         final SAMLMetadataContext metadataContext = filterContext.getRequesterMetadataContext();
 
         if (null == metadataContext) {
-            log.warn("{} Could not locate SP metadata context", getLogPrefix());
+            log.debug("{} No requester metadata context found", getLogPrefix());
             return null;
         }
         final RoleDescriptor role = metadataContext.getRoleDescriptor();
         if (null == role) {
-            log.warn("{} Could not locate RoleDescriptor in SP metadata", getLogPrefix());
+            log.warn("{} Could not locate RoleDescriptor in requester metadata context", getLogPrefix());
             return null;
         }
         
@@ -101,8 +114,8 @@ public class AttributeRequesterNameIDFormatExactPolicyRule extends AbstractPolic
      */
     @Override
     public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
-
         ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        
         final SSODescriptor role = getEntitySSODescriptor(filterContext);
         if (role == null) {
             // logged in above
@@ -125,14 +138,5 @@ public class AttributeRequesterNameIDFormatExactPolicyRule extends AbstractPolic
         log.debug("{} Entity does not support the NameID format '{}'", getLogPrefix(), nameIdFormat);
         return Tristate.FALSE;
     }
-    
-    /** {@inheritDoc} */
-    @Override
-    protected void doInitialize() throws ComponentInitializationException {
-        super.doInitialize();
-        if (null == nameIdFormat) {
-            throw new ComponentInitializationException(getLogPrefix() + " No NameID format specified");
-        }
-    }
 
 }
\ No newline at end of file
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRuleTest.java
index e81a94b..f4dc4bc 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRuleTest.java
@@ -59,7 +59,7 @@ public class AttributeIssuerPolicyRuleTest {
 
     @Test public void testUnpopulated()
             throws ComponentInitializationException {
-        assertEquals(getMatcher().matches(DataSources.unPopulatedFilterContext()), Tristate.FAIL);
+        assertEquals(getMatcher().matches(DataSources.unPopulatedFilterContext()), Tristate.FALSE);
     }
     
     @SuppressWarnings("deprecation")
@@ -71,7 +71,7 @@ public class AttributeIssuerPolicyRuleTest {
 
     @Test public void testNoIssuer()
             throws ComponentInitializationException {
-        assertEquals(getMatcher().matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FAIL);
+        assertEquals(getMatcher().matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FALSE);
     }
 
     @Test public void testCaseSensitive() throws ComponentInitializationException {
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRuleTest.java
index d12a903..9f1d073 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRuleTest.java
@@ -71,12 +71,12 @@ public class AttributeIssuerRegexpPolicyRuleTest {
 
     @Test public void testUnpopulated()
             throws ComponentInitializationException {
-        assertEquals(getMatcher(true).matches(DataSources.unPopulatedFilterContext()), Tristate.FAIL);;
+        assertEquals(getMatcher(true).matches(DataSources.unPopulatedFilterContext()), Tristate.FALSE);;
     }
 
     @Test  public void testNoIssuer()
             throws ComponentInitializationException{
-        assertEquals(getMatcher(false).matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FAIL);;
+        assertEquals(getMatcher(false).matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FALSE);;
     }
 
 }
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRuleTest.java
index 3b548d3..8a8c5bf 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRuleTest.java
@@ -58,12 +58,12 @@ public class AttributeRequesterPolicyRuleTest {
 
     @Test public void testUnpopulated()
             throws ComponentInitializationException {
-        assertEquals(getMatcher().matches(DataSources.unPopulatedFilterContext()), Tristate.FAIL);
+        assertEquals(getMatcher().matches(DataSources.unPopulatedFilterContext()), Tristate.FALSE);
     }
 
     @Test public void testNoRequester()
             throws ComponentInitializationException {
-        assertEquals(getMatcher().matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FAIL);
+        assertEquals(getMatcher().matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FALSE);
     }
 
     @Test public void testCaseSensitive() throws ComponentInitializationException {
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRuleTest.java
index ea94787..a1ed3bc 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRuleTest.java
@@ -59,12 +59,12 @@ public class AttributeRequesterRegexpPolicyRuleTest {
 
     @Test public void testUnpopulated()
             throws ComponentInitializationException {
-        assertEquals(getMatcher().matches(DataSources.unPopulatedFilterContext()), Tristate.FAIL);
+        assertEquals(getMatcher().matches(DataSources.unPopulatedFilterContext()), Tristate.FALSE);
     }
 
     @Test public void testNoRequester()
             throws ComponentInitializationException {
-        assertEquals(getMatcher().matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FAIL);
+        assertEquals(getMatcher().matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FALSE);
     }
 
 }
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRuleTest.java
index 8c4319f..1cfebe6 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRuleTest.java
@@ -54,12 +54,12 @@ public class PrincipalNamePolicyRuleTest {
     
     @Test public void testUnpopulated() throws ComponentInitializationException {
         final PrincipalNamePolicyRule matcher = getMatcher(true);
-        assertEquals(matcher.matches(DataSources.unPopulatedFilterContext()), Tristate.FAIL);
+        assertEquals(matcher.matches(DataSources.unPopulatedFilterContext()), Tristate.FALSE);
     }
 
     @Test public void testNoPrincipal() throws ComponentInitializationException {
         final PrincipalNamePolicyRule matcher = getMatcher(true);
-        assertEquals(matcher.matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FAIL);
+        assertEquals(matcher.matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FALSE);
     }
 
     @Test public void testCaseSensitive() throws ComponentInitializationException {
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRuleTest.java
index cefb6d6..85eb32e 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRuleTest.java
@@ -60,12 +60,12 @@ public class PrincipalNameRegexpPolicyRuleTest {
 
     @Test public void testNoPrincipal() throws ComponentInitializationException {
         final PrincipalNameRegexpPolicyRule matcher = getMatcher();
-        assertEquals(matcher.matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FAIL);
+        assertEquals(matcher.matches(DataSources.populatedFilterContext(null, null, null)), Tristate.FALSE);
     }
 
     @Test public void testUnpopulated() throws ComponentInitializationException {
         final PrincipalNameRegexpPolicyRule matcher = getMatcher();
-        assertEquals(matcher.matches(DataSources.unPopulatedFilterContext()), Tristate.FAIL);
+        assertEquals(matcher.matches(DataSources.unPopulatedFilterContext()), Tristate.FALSE);
     }
 
 }
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRuleTest.java
index 887b93d..7281ee9 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AttributeRequesterInEntityGroupPolicyRuleTest.java
@@ -52,10 +52,10 @@ public class AttributeRequesterInEntityGroupPolicyRuleTest extends BaseMetadataT
         assertEquals(getMatcher("http://shibboleth.net").getEntityGroup(), "http://shibboleth.net");
     }
 
-    @Test public void noGroup() throws ComponentInitializationException {
+    @Test(expectedExceptions=ComponentInitializationException.class)
+    public void noGroup() throws ComponentInitializationException {
         AttributeRequesterInEntityGroupPolicyRule matcher = new AttributeRequesterInEntityGroupPolicyRule();
         matcher.setId("matcher");
         matcher.initialize();
-        assertEquals(matcher.matches(reqMetadataContext(null, null)), Tristate.FALSE);
     }
 }

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


More information about the commits mailing list