[jboss-cvs] JBossAS SVN: r58450 - trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 16 10:43:37 EST 2006
Author: scott.stark at jboss.org
Date: 2006-11-16 10:43:36 -0500 (Thu, 16 Nov 2006)
New Revision: 58450
Modified:
trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java
Log:
Restore the security domain binding
Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java 2006-11-16 13:48:37 UTC (rev 58449)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java 2006-11-16 15:43:36 UTC (rev 58450)
@@ -41,6 +41,8 @@
import javax.management.Attribute;
import javax.management.MBeanServer;
import javax.management.ObjectName;
+import javax.naming.Context;
+import javax.naming.InitialContext;
import org.apache.catalina.Loader;
import org.apache.tomcat.util.modeler.Registry;
@@ -310,10 +312,41 @@
server.invoke(objectName, "start", new Object[]{},
new String[]{});
// Build the ENC
+
if (injectionContainer == null)
super.processEnc(webLoader.getClassLoader(), webApp);
else
- injectionContainer.populateEnc(webLoader.getClassLoader());
+ {
+ Thread currentThread = Thread.currentThread();
+ ClassLoader currentLoader = loader;
+ try
+ {
+ // Create a java:comp/env environment unique for the web application
+ log.debug("Creating ENC using ClassLoader: " + loader);
+ ClassLoader parent = loader.getParent();
+ while (parent != null)
+ {
+ log.debug(".." + parent);
+ parent = parent.getParent();
+ }
+ // TODO: The enc should be an input?
+ currentThread.setContextClassLoader(webLoader.getClassLoader());
+ metaData.setENCLoader(webLoader.getClassLoader());
+ InitialContext iniCtx = new InitialContext();
+ Context envCtx = (Context) iniCtx.lookup("java:comp");
+ envCtx = envCtx.createSubcontext("env");
+ injectionContainer.populateEnc(webLoader.getClassLoader());
+ // TODO: this should be bindings in the metadata
+ currentThread.setContextClassLoader(webLoader.getClassLoader());
+ String securityDomain = metaData.getSecurityDomain();
+ log.debug("linkSecurityDomain");
+ linkSecurityDomain(securityDomain, envCtx);
+ }
+ finally
+ {
+ currentThread.setContextClassLoader(currentLoader);
+ }
+ }
// Clustering
if (metaData.getDistributable())
More information about the jboss-cvs-commits
mailing list