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