Package net.shibboleth.idp.profile.logic
Class SimpleAttributePredicate
java.lang.Object
net.shibboleth.idp.profile.logic.AbstractAttributePredicate
net.shibboleth.idp.profile.logic.SimpleAttributePredicate
- All Implemented Interfaces:
Predicate<ProfileRequestContext>
,Predicate<ProfileRequestContext>
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, 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.Logger
Class logger.private String
Optional scope to check. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
Get the result of the predicate in the case the attribute context is null.protected boolean
findMatch
(String toMatch, IdPAttribute attribute) Look for a matching value in an attribute.protected boolean
hasMatch
(Map<String, IdPAttribute> attributeMap) Abstract implementation of the condition to evaluate.void
Set the map of attribute/value pairs (as a map of string collections) to check for.void
Set a scope to check for.Methods inherited from class net.shibboleth.idp.profile.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.- Overrides:
allowNullAttributeContext
in classAbstractAttributePredicate
- Returns:
- null context result
-
hasMatch
Abstract implementation of the condition to evaluate.- Specified by:
hasMatch
in 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
-