Class SimpleAttributePredicate

  • All Implemented Interfaces:
    Predicate<org.opensaml.profile.context.ProfileRequestContext>, net.shibboleth.utilities.java.support.logic.Predicate<org.opensaml.profile.context.ProfileRequestContext>

    public class SimpleAttributePredicate
    extends AbstractAttributePredicate
    Predicate that evaluates an AttributeContext and checks for particular attribute/value pairs.

    A map to a collection of strings is used to represent the attribute(s) and value(s) to evaluate. The values are evaluated as a disjunction (OR) and the attributes are evaluated as a conjunction (AND).

    This handles only simple string-valued data.

    For the special case of checking for an attribute's presence, regardless of values, the '*' value is supported. Note that this does NOT exclude pathological cases such as empty or null values. A more advanced predicate should be used to deal with such cases.

    • Field Detail

      • log

        @Nonnull
        private final org.slf4j.Logger log
        Class logger.
      • attributeValueMap

        @Nonnull
        @NonnullElements
        private ListMultimap<String,​String> attributeValueMap
        Map of attribute IDs to values.
    • Constructor Detail

      • SimpleAttributePredicate

        public SimpleAttributePredicate()
        Constructor.
    • Method Detail

      • setAttributeValueMap

        public void setAttributeValueMap​(@Nonnull @NonnullElements
                                         Map<String,​Collection<String>> map)
        Set the map of attribute/value pairs (as a map of string collections) to check for.
        Parameters:
        map - map of attribute/value pairs
      • hasMatch

        protected boolean hasMatch​(Map<String,​net.shibboleth.idp.attribute.IdPAttribute> attributeMap)
        Abstract implementation of the condition to evaluate.
        Specified by:
        hasMatch in class AbstractAttributePredicate
        Parameters:
        attributeMap - the attributes to evaluate
        Returns:
        the condition result
      • findMatch

        protected boolean findMatch​(@Nonnull @NotEmpty
                                    String toMatch,
                                    @Nonnull
                                    net.shibboleth.idp.attribute.IdPAttribute attribute)
        Look for a matching value in an attribute.
        Parameters:
        toMatch - value to look for
        attribute - attribute to check
        Returns:
        true iff the value is one of the attribute's values