Class SimpleAttributePredicate
- All Implemented Interfaces:
Predicate<ProfileRequestContext>
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, or if scope is supplied, requires scoped values.
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 Summary
FieldsModifier and TypeFieldDescriptionprivate ListMultimap<String,String> Map of attribute IDs to values.private final org.slf4j.LoggerClass logger.private StringOptional scope to check. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanGet the result of the predicate in the case the attribute context is null.protected booleanfindMatch(String toMatch, IdPAttribute attribute) Look for a matching value in an attribute.protected booleanhasMatch(Map<String, IdPAttribute> attributeMap) Abstract implementation of the condition to evaluate.voidSet the map of attribute/value pairs (as a map of string collections) to check for.voidSet a scope to check for.Methods inherited from class net.shibboleth.profile.context.logic.AbstractAttributePredicate
getAttributeContextLookupStrategy, isUseUnfilteredAttributes, setAttributeContextLookupStrategy, setUseUnfilteredAttributes, test
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
attributeValueMap
Map of attribute IDs to values. -
scope
Optional scope to check.
-
-
Constructor Details
-
SimpleAttributePredicate
public SimpleAttributePredicate()Constructor.
-
-
Method Details
-
setAttributeValueMap
Set the map of attribute/value pairs (as a map of string collections) to check for.- Parameters:
map- map of attribute/value pairs
-
setScope
Set a scope to check for.If set, values that "match" must be scoped with this value. A "*" will match any scope, but one must exist.
- Parameters:
s- scope to check for- Since:
- 4.2.0
-
allowNullAttributeContext
protected boolean allowNullAttributeContext()Get the result of the predicate in the case the attribute context is null.Defaults to false unless overridden by a subclass.
This will return false unless no values and scope to check for were specified to the condition.
- Overrides:
allowNullAttributeContextin classAbstractAttributePredicate- Returns:
- null context result
-
hasMatch
Abstract implementation of the condition to evaluate.- Specified by:
hasMatchin classAbstractAttributePredicate- Parameters:
attributeMap- the attributes to evaluate- Returns:
- the condition result
-
findMatch
Look for a matching value in an attribute.- Parameters:
toMatch- value to look forattribute- attribute to check- Returns:
- true iff the value is one of the attribute's values
-