01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.jetspeed.profiler.rules.impl;
18:
19: import org.apache.jetspeed.profiler.rules.ProfilingRule;
20: import org.apache.jetspeed.profiler.rules.RuleCriterion;
21: import org.apache.jetspeed.profiler.rules.RuleCriterionResolver;
22: import org.apache.jetspeed.request.RequestContext;
23:
24: /**
25: * Standard Jetspeed-1 Group/Role/User resolver.
26: * First looking for a group request parameter, then a role request parameter,
27: * then a user request parameter. If none are found, then it uses the
28: * current user's principal.
29: *
30: * If it is null, it then falls back to a request parameter.
31: * If it is null it gives up and returns null allowing subclasses
32: * to continue processing.
33: *
34: * Since there is no 1:1 value for a combination rule of group, the criterion's
35: * value is ignored.
36: *
37: * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
38: * @version $Id: GroupRoleUserCriterionResolver.java 516448 2007-03-09 16:25:47Z ate $
39: */
40: public class GroupRoleUserCriterionResolver extends
41: UserCriterionResolver implements RuleCriterionResolver {
42: /* (non-Javadoc)
43: * @see org.apache.jetspeed.profiler.rules.RuleCriterionResolver#resolve(org.apache.jetspeed.request.RequestContext, org.apache.jetspeed.profiler.rules.RuleCriterion)
44: */
45: public String resolve(RequestContext context,
46: RuleCriterion criterion) {
47: String value = context
48: .getRequestParameter(ProfilingRule.STANDARD_GROUP);
49: if (value != null) {
50: criterion.setName(ProfilingRule.STANDARD_GROUP);
51: return value;
52: }
53: value = context
54: .getRequestParameter(ProfilingRule.STANDARD_ROLE);
55: if (value != null) {
56: criterion.setName(ProfilingRule.STANDARD_ROLE);
57: return value;
58: }
59:
60: // use the User Criterion to resolve it
61: criterion.setName(ProfilingRule.STANDARD_USER);
62: return super.resolve(context, criterion);
63: }
64:
65: }
|