KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > tomcat > interceptor > PolicyContextBeforeAfter


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * 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.geronimo.tomcat.interceptor;
18
19 import javax.security.jacc.PolicyContext JavaDoc;
20 import javax.servlet.ServletRequest JavaDoc;
21 import javax.servlet.ServletResponse JavaDoc;
22
23 import org.apache.geronimo.security.Callers;
24 import org.apache.geronimo.security.ContextManager;
25
26 public class PolicyContextBeforeAfter implements BeforeAfter{
27
28     private final BeforeAfter next;
29     private final String JavaDoc policyContextID;
30     private final int policyContextIDIndex;
31     private final int callersIndex;
32
33     public PolicyContextBeforeAfter(BeforeAfter next, int policyContextIDIndex, int callersIndex, String JavaDoc policyContextID) {
34         this.next = next;
35         this.policyContextIDIndex = policyContextIDIndex;
36         this.callersIndex = callersIndex;
37         this.policyContextID = policyContextID;
38     }
39
40     public void before(Object JavaDoc[] context, ServletRequest JavaDoc httpRequest, ServletResponse JavaDoc httpResponse) {
41
42         //Save the old
43

44         context[policyContextIDIndex] = PolicyContext.getContextID();
45         context[callersIndex] = ContextManager.getCallers();
46
47         //Set the new
48
PolicyContext.setContextID(policyContextID);
49         PolicyContext.setHandlerData(httpRequest);
50
51         if (next != null) {
52             next.before(context, httpRequest, httpResponse);
53         }
54     }
55
56     public void after(Object JavaDoc[] context, ServletRequest JavaDoc httpRequest, ServletResponse JavaDoc httpResponse) {
57         if (next != null) {
58             next.after(context, httpRequest, httpResponse);
59         }
60
61         //Replace the old
62
PolicyContext.setContextID((String JavaDoc)context[policyContextIDIndex]);
63         ContextManager.popCallers((Callers) context[callersIndex]);
64     }
65
66 }
67
68
Popular Tags