[java-identity-provider COMMIT] in /trunk/idp-profile-api/src: main/java/net/shibboleth/idp/profile/logic/AbstractAtt...

noreply at shibboleth.net noreply at shibboleth.net
Fri Jun 19 13:55:30 EDT 2015


Author: serac
Date: Fri Jun 19 13:55:30 2015
New Revision: 7577

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7577&view=rev
Log:
IDP-746 Add DateAttributePredicate.

https://issues.shibboleth.net/jira/browse/IDP-746
Refactored common functionality into abstract base class from which
DateAttributePredicate and SimpleAttributePredicate inherit.

Added:
    trunk/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/AbstractAttributePredicate.java
    trunk/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/DateAttributePredicate.java
    trunk/idp-profile-api/src/test/java/net/shibboleth/idp/profile/logic/DateAttributePredicateTest.java
Modified:
    trunk/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/SimpleAttributePredicate.java

Modified: trunk/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/SimpleAttributePredicate.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/SimpleAttributePredicate.java?rev=7577&r1=7576&r2=7577&view=diff
==============================================================================
--- trunk/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/SimpleAttributePredicate.java	(original)
+++ trunk/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/SimpleAttributePredicate.java	Fri Jun 19 13:55:30 2015
@@ -21,26 +21,19 @@
 import java.util.Map;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.StringAttributeValue;
 import net.shibboleth.idp.attribute.context.AttributeContext;
-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.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
-import org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.profile.context.ProfileRequestContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.base.Predicate;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.ListMultimap;
 
@@ -55,51 +48,20 @@
  * <p>For the special case of checking for an attribute's presence, regardless of values, the '*' value is
  * supported.</p>
  */
-public class SimpleAttributePredicate implements Predicate<ProfileRequestContext> {
+public class SimpleAttributePredicate extends AbstractAttributePredicate {
 
     /** Class logger. */
     @Nonnull private final Logger log = LoggerFactory.getLogger(SimpleAttributePredicate.class);
-
-    /** Strategy function to lookup {@link AttributeContext}. */
-    @Nonnull private Function<ProfileRequestContext,AttributeContext> attributeContextLookupStrategy;
-
-    /** Whether to look at filtered or unfiltered attributes. */
-    private boolean useUnfilteredAttributes;
 
     /** Map of attribute IDs to values. */
     @Nonnull @NonnullElements private ListMultimap<String,String> attributeValueMap;
     
     /** Constructor. */
     public SimpleAttributePredicate() {
-        attributeContextLookupStrategy = Functions.compose(new ChildContextLookup<>(AttributeContext.class),
-                new ChildContextLookup<ProfileRequestContext,RelyingPartyContext>(RelyingPartyContext.class));
-        useUnfilteredAttributes = true;
+        super();
         attributeValueMap = ArrayListMultimap.create();
     }
 
-    /**
-     * Set the lookup strategy to use to locate the {@link AttributeContext}.
-     * 
-     * @param strategy lookup function to use
-     */
-    public void setAttributeContextLookupStrategy(
-            @Nonnull final Function<ProfileRequestContext,AttributeContext> strategy) {
-
-        attributeContextLookupStrategy =
-                Constraint.isNotNull(strategy, "AttributeContext lookup strategy cannot be null");
-    }
-    
-    /**
-     * Set whether to source the input attributes from the unfiltered set.
-     * 
-     * <p>Defaults to true.</p>
-     * 
-     * @param flag flag to set
-     */
-    public void setUseUnfilteredAttributes(final boolean flag) {
-        useUnfilteredAttributes = flag;
-    }
-    
     /**
      * Set the map of attribute/value pairs (as a map of string collections) to check for.
      * 
@@ -115,45 +77,37 @@
         }
     }
 
-    /** {@inheritDoc} */
     @Override
-    public boolean apply(@Nullable final ProfileRequestContext input) {
-        
-        final AttributeContext attributeCtx = attributeContextLookupStrategy.apply(input);
-        if (attributeCtx == null) {
-            log.warn("No AttributeContext located for evaluation");
-            return attributeValueMap.isEmpty();
-        }
-        

[... 54 lines stripped ...]


More information about the commits mailing list