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 }