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 }