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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Aug 25 10:22:18 EDT 2010


Author: remy.maucherat at jboss.com
Date: 2010-08-25 10:22:18 -0400 (Wed, 25 Aug 2010)
New Revision: 107773

Modified:
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/security/SecurityContextEstablishmentValve.java
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/NamingListener.java
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
Log:
- Move setting the component to the first valve after StandardHostValve, since naming use is legitimate (somehow) before
  entering the application.
- Not using a new valve because avoiding too many try/finally is good usually.

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/security/SecurityContextEstablishmentValve.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/security/SecurityContextEstablishmentValve.java	2010-08-25 14:20:44 UTC (rev 107772)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/security/SecurityContextEstablishmentValve.java	2010-08-25 14:22:18 UTC (rev 107773)
@@ -34,7 +34,10 @@
 import org.jboss.security.SecurityUtil;
 import org.jboss.servlet.http.HttpEvent;
 
+import org.jboss.reloaded.naming.CurrentComponent;
+import org.jboss.reloaded.naming.spi.JavaEEComponent;
 
+
 /**
  *  Establish the Security Context
  *  @author Anil.Saldhana at redhat.com
@@ -45,12 +48,13 @@
 {  
    private String configuredSecurityDomainName;
    private ISecurityManagement securityManagement;
+   private JavaEEComponent id;
    
    private Class<?> securityContextClass;
 
    public SecurityContextEstablishmentValve(String configuredSecurityDomain, 
          String defaultSecurityDomain, Class<?> contextClass,
-         ISecurityManagement securityManagement)
+         ISecurityManagement securityManagement, JavaEEComponent id)
    {
       String securityDomain = defaultSecurityDomain;
       
@@ -60,6 +64,8 @@
       this.configuredSecurityDomainName = SecurityUtil.unprefixSecurityDomain(securityDomain);  
       this.securityContextClass = contextClass;
       this.securityManagement = securityManagement;
+      this.id = id;
+      assert id != null : "id is null";
    }
    
    @Override
@@ -87,6 +93,7 @@
          createdSecurityContext = true;
       }
       
+      CurrentComponent.push(id);
       try
       { 
          // Perform the request
@@ -94,6 +101,7 @@
       }
       finally
       { 
+         CurrentComponent.pop();
          if(createdSecurityContext)
          {
             SecurityAssociationActions.clearSecurityContext();
@@ -146,6 +154,7 @@
          createdSecurityContext = true;
       }
       
+      CurrentComponent.push(id);
       try
       { 
          // Perform the request
@@ -153,6 +162,7 @@
       }
       finally
       { 
+         CurrentComponent.pop();
          if(createdSecurityContext)
          {
             SecurityAssociationActions.clearSecurityContext();

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/NamingListener.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/NamingListener.java	2010-08-25 14:20:44 UTC (rev 107772)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/NamingListener.java	2010-08-25 14:22:18 UTC (rev 107773)
@@ -60,8 +60,7 @@
    {
       String type = event.getType();
       // Push the identity on the before init/destroy
-      if ( type.equals(InstanceEvent.BEFORE_REQUEST_EVENT)
-         || type.equals(InstanceEvent.BEFORE_DISPATCH_EVENT)
+      if ( type.equals(InstanceEvent.BEFORE_DISPATCH_EVENT)
          || type.equals(InstanceEvent.BEFORE_DESTROY_EVENT)
          || type.equals(InstanceEvent.BEFORE_INIT_EVENT) )
       {
@@ -69,8 +68,7 @@
          CurrentComponent.push(id);
       }
       // Pop the identity on the after init/destroy
-      else if ( type.equals(InstanceEvent.AFTER_REQUEST_EVENT)
-         || type.equals(InstanceEvent.AFTER_DISPATCH_EVENT)
+      else if ( type.equals(InstanceEvent.AFTER_DISPATCH_EVENT)
          || type.equals(InstanceEvent.AFTER_DESTROY_EVENT)
          || type.equals(InstanceEvent.AFTER_INIT_EVENT) )
       {

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	2010-08-25 14:20:44 UTC (rev 107772)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-08-25 14:22:18 UTC (rev 107773)
@@ -275,9 +275,9 @@
       if (metaDataSecurityDomain != null)
          metaDataSecurityDomain = metaDataSecurityDomain.trim();
       
-      // Add a valve to establish security context
+      // Add a valve to establish security and naming context
       SecurityContextEstablishmentValve scevalve = new SecurityContextEstablishmentValve(metaDataSecurityDomain, SecurityUtil.unprefixSecurityDomain(config
-            .getDefaultSecurityDomain()), SecurityActions.loadClass(config.getSecurityContextClassName()), getSecurityManagement());
+            .getDefaultSecurityDomain()), SecurityActions.loadClass(config.getSecurityContextClassName()), getSecurityManagement(), component);
       context.addValve(scevalve);
 
       // Add a valve to estalish the JACC context before authorization valves



More information about the jboss-cvs-commits mailing list