1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.profiler.rules.impl;
18
19 import javax.security.auth.Subject;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.apache.jetspeed.profiler.rules.RuleCriterion;
24 import org.apache.jetspeed.profiler.rules.RuleCriterionResolver;
25 import org.apache.jetspeed.request.RequestContext;
26 import org.apache.jetspeed.security.RolePrincipal;
27
28 /***
29 * Role combo resolver
30 * Combines all roles into one string
31 * Example: roles = a,b,c
32 * RoleCombo = a-b-c
33 *
34 * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
35 * @version $Id: RoleCriterionResolver.java 187756 2004-10-15 22:58:43Z ate $
36 */
37 public class RoleComboCriterionResolver
38 extends StandardResolver
39 implements RuleCriterionResolver
40 {
41 protected final static Log log = LogFactory.getLog(UserCriterionResolver.class);
42
43
44
45
46 public String resolve(RequestContext context, RuleCriterion criterion)
47 {
48 String value = super.resolve(context, criterion);
49 if (value != null)
50 {
51 return value;
52 }
53
54 Subject subject = context.getSubject();
55 if (subject == null)
56 {
57 String msg = "Invalid (null) Subject in request pipeline";
58 log.error(msg);
59 return null;
60 }
61
62 return combinePrincipals(context, criterion, subject, RolePrincipal.class);
63 }
64
65
66
67
68 public boolean isControl(RuleCriterion criterion)
69 {
70 return true;
71 }
72
73
74 }