1 17 package org.apache.geronimo.tomcat.interceptor; 18 19 import javax.security.jacc.PolicyContext ; 20 import javax.servlet.ServletRequest ; 21 import javax.servlet.ServletResponse ; 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 policyContextID; 30 private final int policyContextIDIndex; 31 private final int callersIndex; 32 33 public PolicyContextBeforeAfter(BeforeAfter next, int policyContextIDIndex, int callersIndex, String policyContextID) { 34 this.next = next; 35 this.policyContextIDIndex = policyContextIDIndex; 36 this.callersIndex = callersIndex; 37 this.policyContextID = policyContextID; 38 } 39 40 public void before(Object [] context, ServletRequest httpRequest, ServletResponse httpResponse) { 41 42 44 context[policyContextIDIndex] = PolicyContext.getContextID(); 45 context[callersIndex] = ContextManager.getCallers(); 46 47 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 [] context, ServletRequest httpRequest, ServletResponse httpResponse) { 57 if (next != null) { 58 next.after(context, httpRequest, httpResponse); 59 } 60 61 PolicyContext.setContextID((String )context[policyContextIDIndex]); 63 ContextManager.popCallers((Callers) context[callersIndex]); 64 } 65 66 } 67 68 | Popular Tags |