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