1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package edu.internet2.middleware.shibboleth.common.attribute.filtering.provider.match.basic;
18
19 import java.util.Collection;
20
21 import edu.internet2.middleware.shibboleth.common.attribute.BaseAttribute;
22 import edu.internet2.middleware.shibboleth.common.attribute.filtering.provider.FilterProcessingException;
23 import edu.internet2.middleware.shibboleth.common.attribute.filtering.provider.ShibbolethFilteringContext;
24 import edu.internet2.middleware.shibboleth.common.attribute.provider.ScopedAttributeValue;
25
26
27
28
29
30
31 public class AttributeScopeStringMatchFunctor extends AbstractAttributeTargetedStringMatchFunctor {
32
33
34
35
36
37
38 protected boolean doEvaluateValue(ShibbolethFilteringContext filterContext, String attributeId,
39 Object attributeValue) throws FilterProcessingException {
40 return isMatch(((ScopedAttributeValue) attributeValue).getScope());
41 }
42
43
44
45
46
47
48 protected boolean doEvaluatePolicyRequirement(ShibbolethFilteringContext filterContext)
49 throws FilterProcessingException {
50 BaseAttribute attribute = filterContext.getUnfilteredAttributes().get(getAttributeId());
51 if (attribute == null) {
52 return false;
53 }
54
55 Collection values = attribute.getValues();
56 ScopedAttributeValue scoped;
57
58
59
60
61
62
63
64
65 if (values != null) {
66 for (Object value : values) {
67 if (value instanceof ScopedAttributeValue) {
68 scoped = (ScopedAttributeValue) value;
69 if (isMatch(scoped.getScope())) {
70 return true;
71 }
72 }
73 }
74 }
75
76 return false;
77 }
78 }