JPolicyContextHandlerData.java

00001 
00027 package org.objectweb.jonas.security.jacc;
00028 
00029 import javax.ejb.EnterpriseBean;
00030 import javax.security.auth.Subject;
00031 import javax.servlet.http.HttpServletRequest;
00032 
00033 import org.objectweb.jonas.security.auth.JPrincipal;
00034 
00035 import org.objectweb.security.context.SecurityContext;
00036 import org.objectweb.security.context.SecurityCurrent;
00037 
00044 public class JPolicyContextHandlerData {
00045 
00050     private HttpServletRequest httpServletRequest = null;
00051 
00056     private Object[] ejbArguments = null;
00057 
00062     private EnterpriseBean processingBean = null;
00063 
00067     public JPolicyContextHandlerData() {
00068         super();
00069     }
00070 
00074     public HttpServletRequest getHttpServletRequest() {
00075         return httpServletRequest;
00076     }
00077 
00081     public void setHttpServletRequest(HttpServletRequest httpServletRequest) {
00082         this.httpServletRequest = httpServletRequest;
00083     }
00084 
00088     public Object[] getEjbArguments() {
00089         return ejbArguments;
00090     }
00091 
00096     public void setEjbArguments(Object[] ejbArguments) {
00097         this.ejbArguments = ejbArguments;
00098     }
00099 
00104     public Subject getContainerSubject() {
00105         Subject subject = null;
00106 
00107         SecurityCurrent current = SecurityCurrent.getCurrent();
00108         if (current != null) {
00109             SecurityContext ctx = current.getSecurityContext();
00110             if (ctx != null) {
00111                 subject = new Subject();
00112                 String runAsRole = ctx.peekRunAsRole();
00113                 if (runAsRole != null) {
00114                     subject.getPrincipals().add(new JPrincipal(runAsRole));
00115                 } else {
00116                     subject.getPrincipals().add(ctx.getCallerPrincipal(false));
00117                 }
00118                 return subject;
00119             }
00120         }
00121         return subject;
00122     }
00123 
00127     public EnterpriseBean getProcessingBean() {
00128         return processingBean;
00129     }
00130 
00134     public void setProcessingBean(EnterpriseBean processingBean) {
00135         this.processingBean = processingBean;
00136     }
00137 }

Generated on Tue Feb 15 15:05:21 2005 for JOnAS by  doxygen 1.3.9.1