[jboss-cvs] JBossAS SVN: r111938 - in trunk: tomcat/src/main/java/org/jboss/web/tomcat/service/deployers and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Aug 5 10:32:42 EDT 2011


Author: alesj
Date: 2011-08-05 10:32:41 -0400 (Fri, 05 Aug 2011)
New Revision: 111938

Modified:
   trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
Log:
[JBAS-8836]; do unbind on security manager.

 


Modified: trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java	2011-08-04 22:05:01 UTC (rev 111937)
+++ trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java	2011-08-05 14:32:41 UTC (rev 111938)
@@ -28,7 +28,6 @@
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Set;
-
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 import javax.naming.Context;
@@ -839,6 +838,16 @@
       Util.bind(javaCompCtx, "env/security/security-domain", new LinkRef(securityDomain));
       Util.bind(javaCompCtx, "env/security/subject", new LinkRef(securityDomain + "/subject"));
    }
+   
+   protected void unlinkSecurityDomain(String securityDomain, Context javaCompCtx) throws NamingException
+   {
+      log.debug("UnLinking security/securityMgr from JNDI ");
+      Util.unbind(javaCompCtx, "env/security/securityMgr");
+      Util.unbind(javaCompCtx, "env/security/realmMapping");
+      Util.unbind(javaCompCtx, "env/security/authorizationMgr");
+      Util.unbind(javaCompCtx, "env/security/security-domain");
+      Util.unbind(javaCompCtx, "env/security/subject");
+   }
 
    /**
     * A utility method that searches the given loader for the resources:

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2011-08-04 22:05:01 UTC (rev 111937)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2011-08-05 14:32:41 UTC (rev 111938)
@@ -33,10 +33,10 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 import javax.naming.Context;
+import javax.naming.NamingException;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Engine;
@@ -380,10 +380,9 @@
 
       public void lifecycleEvent(LifecycleEvent event)
       {
-
-         if (event.getType().equals(StandardContext.AFTER_START_EVENT))
+         String eventType = event.getType();
+         if (eventType.equals(StandardContext.AFTER_START_EVENT))
          {
-
             // make the context class loader known to the JBossWebMetaData, ws4ee needs it
             // to instanciate service endpoint pojos that live in this webapp
             metaData.setContextLoader(webLoader.getClassLoader());
@@ -453,8 +452,31 @@
                injectionContainer.processMetadata();
             }
          }
+         else if(eventType.equals(StandardContext.BEFORE_STOP_EVENT))
+         {
+            unbindSecurityDomainJndiBindings(webApp);
+         }
       }
 
+      protected void unbindSecurityDomainJndiBindings(WebApplication webApplication)
+      {
+         Thread currentThread = Thread.currentThread();
+         ClassLoader currentLoader = currentThread.getContextClassLoader();
+         try
+         {
+            currentThread.setContextClassLoader(webApplication.getMetaData().getENCLoader());
+            final Context envCtx = component.getContext();
+            unlinkSecurityDomain(webApplication.getMetaData().getSecurityDomain(), envCtx);
+         }
+         catch (final NamingException e)
+         {
+            log.error(e.getMessage(), e);
+         }
+         finally
+         {
+            currentThread.setContextClassLoader(currentLoader);
+         }
+      }
    }
 
    public Loader getWebLoader(DeploymentUnit unit, JBossWebMetaData metaData, ClassLoader loader, URL rl, TomcatInjectionContainer injectionContainer) throws MalformedURLException
@@ -524,7 +546,6 @@
          }
       }
       performUndeployInternal(warInfo, hostName, warUrl);
-
    }
 
    protected void performUndeployInternal(WebApplication warInfo, String hostName, String warUrlStr) throws Exception
@@ -746,4 +767,4 @@
    {
       this.componentInformer = componentInformer;
    }
-}
\ No newline at end of file
+}



More information about the jboss-cvs-commits mailing list