Author: rmannibucau
Date: Fri Aug 19 15:48:58 2011
New Revision: 1159668

URL: http://svn.apache.org/viewvc?rev=1159668&view=rev
Log:
adding an asynclistener to replace old valve inside tomcat

Modified:
    
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java

Modified: 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java?rev=1159668&r1=1159667&r2=1159668&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java
 (original)
+++ 
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java
 Fri Aug 19 15:48:58 2011
@@ -37,21 +37,16 @@ public class OpenEJBValve extends ValveB
     }
 
     public void invoke(Request request, Response response) throws IOException, 
ServletException {
+        OpenEJBSecurityListener listener = new 
OpenEJBSecurityListener(securityService, request);
         if (!request.isAsync()) {
-            Object oldState = null;
-            if (securityService != null && request.getWrapper() != null) {
-                oldState = 
securityService.enterWebApp(request.getWrapper().getRealm(), 
request.getPrincipal(), request.getWrapper().getRunAs());
-            }
-
+            listener.enter();
             try {
                 getNext().invoke(request, response);
             } finally {
-                if (securityService != null) {
-                    securityService.exitWebApp(oldState);
-                }
+                listener.exit();
             }
         } else {
-            // for async request security should be initialized elsewhere
+            request.getAsyncContext().addListener(new 
OpenEJBSecurityListener(securityService, request));
             getNext().invoke(request, response);
         }
     }


Reply via email to