[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