dain 2005/03/07 22:11:27
Modified: modules/core/src/java/org/openejb GenericEJBContainer.java
Log:
Register RunAsSubject on container startup and shutdown
Revision Changes Path
1.44 +27 -21
openejb/modules/core/src/java/org/openejb/GenericEJBContainer.java
Index: GenericEJBContainer.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/GenericEJBContainer.java,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- GenericEJBContainer.java 6 Mar 2005 02:49:24 -0000 1.43
+++ GenericEJBContainer.java 8 Mar 2005 03:11:27 -0000 1.44
@@ -121,30 +121,31 @@
private final String[] localJndiNames;
private final SecurityConfiguration securityConfiguration;
- private transient PolicyConfiguration policyConfiguration;
- private transient Subject defaultSubject;
+ private PolicyConfiguration policyConfiguration;
+ private final Subject defaultSubject;
+ private final Subject runAsSubject;
private final BasicTimerServiceImpl timerService;
public GenericEJBContainer(Object containerId,
- String ejbName,
- ProxyInfo proxyInfo,
- InterfaceMethodSignature[] signatures,
- InstanceContextFactory contextFactory,
- InterceptorBuilder interceptorBuilder,
- InstancePool pool,
- Map componentContext,
- UserTransactionImpl userTransaction,
- String[] jndiNames,
- String[] localJndiNames,
- TransactionContextManager
transactionContextManager,
- TrackedConnectionAssociator
trackedConnectionAssociator,
- ThreadPooledTimer timer,
- String objectName,
- Kernel kernel,
- SecurityConfiguration securityConfiguration,
- Subject defaultSubject,
- ClassLoader classLoader) throws Exception {
+ String ejbName,
+ ProxyInfo proxyInfo,
+ InterfaceMethodSignature[] signatures,
+ InstanceContextFactory contextFactory,
+ InterceptorBuilder interceptorBuilder,
+ InstancePool pool,
+ Map componentContext,
+ UserTransactionImpl userTransaction,
+ String[] jndiNames,
+ String[] localJndiNames,
+ TransactionContextManager transactionContextManager,
+ TrackedConnectionAssociator trackedConnectionAssociator,
+ ThreadPooledTimer timer,
+ String objectName,
+ Kernel kernel,
+ SecurityConfiguration securityConfiguration,
+ Subject defaultSubject,
+ Subject runAsSubject, ClassLoader classLoader) throws Exception {
assert (containerId != null);
assert (ejbName != null && ejbName.length() > 0);
@@ -216,6 +217,7 @@
this.securityConfiguration = securityConfiguration;
this.defaultSubject = defaultSubject;
+ this.runAsSubject = runAsSubject;
// TODO maybe there is a more suitable place to do this. Maybe not.
@@ -374,6 +376,7 @@
}
if (defaultSubject != null)
ContextManager.registerSubject(defaultSubject);
+ if (runAsSubject != null)
ContextManager.registerSubject(runAsSubject);
if (securityConfiguration != null) {
/**
@@ -432,6 +435,7 @@
}
if (defaultSubject != null)
ContextManager.unregisterSubject(defaultSubject);
+ if (runAsSubject != null)
ContextManager.unregisterSubject(runAsSubject);
if (this.securityConfiguration != null) {
/**
@@ -491,6 +495,7 @@
infoFactory.addAttribute("SecurityConfiguration",
SecurityConfiguration.class, true);
infoFactory.addAttribute("DefaultSubject", Subject.class, true);
+ infoFactory.addAttribute("RunAsSubject", Subject.class, true);
infoFactory.addAttribute("classLoader", ClassLoader.class, false);
@@ -522,6 +527,7 @@
"kernel",
"SecurityConfiguration",
"DefaultSubject",
+ "RunAsSubject",
"classLoader"});
GBEAN_INFO = infoFactory.getBeanInfo();