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 AttributeScopeRegexMatchFunctor extends AbstractAttributeTargetedRegexMatchFunctor {
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
53 if (attribute != null) {
54 ScopedAttributeValue value;
55 Collection values = attribute.getValues();
56
57
58
59
60
61
62
63
64 if (values != null) {
65 for (Object object : values) {
66 if (object instanceof ScopedAttributeValue) {
67 value = (ScopedAttributeValue) object;
68 if (isMatch(value.getScope())) {
69 return true;
70
71 }
72 }
73 }
74 }
75 }
76
77 return false;
78 }
79 }