You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/11/13 13:46:30 UTC

svn commit: r1034748 - /tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java

Author: markt
Date: Sat Nov 13 12:46:30 2010
New Revision: 1034748

URL: http://svn.apache.org/viewvc?rev=1034748&view=rev
Log:
Revert r1031709
Parallel deployment implementation is changing as a result of discussion on the dev list and this re-ordering was specific to the previous implementation.

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1034748&r1=1034747&r2=1034748&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Sat Nov 13 12:46:30 2010
@@ -575,6 +575,33 @@ public class CoyoteAdapter implements Ad
         request.setContext((Context) request.getMappingData().context);
         request.setWrapper((Wrapper) request.getMappingData().wrapper);
 
+        // Filter trace method
+        if (!connector.getAllowTrace() 
+                && req.method().equalsIgnoreCase("TRACE")) {
+            Wrapper wrapper = request.getWrapper();
+            String header = null;
+            if (wrapper != null) {
+                String[] methods = wrapper.getServletMethods();
+                if (methods != null) {
+                    for (int i=0; i<methods.length; i++) {
+                        if ("TRACE".equals(methods[i])) {
+                            continue;
+                        }
+                        if (header == null) {
+                            header = methods[i];
+                        } else {
+                            header += ", " + methods[i];
+                        }
+                    }
+                }
+            }                               
+            res.setStatus(405);
+            res.addHeader("Allow", header);
+            res.setMessage("TRACE method is not allowed");
+            request.getContext().logAccess(request, response, 0, true);
+            return false;
+        }
+
         // If there is no context at this point, it is likely no ROOT context
         // has been deployed
         if (request.getContext() == null) {
@@ -601,10 +628,6 @@ public class CoyoteAdapter implements Ad
             }
         }
 
-        // Look for session ID in cookies and SSL session
-        parseSessionCookiesId(req, request);
-        parseSessionSslId(request);
-
         // Possible redirect
         MessageBytes redirectPathMB = request.getMappingData().redirectPath;
         if (!redirectPathMB.isNull()) {
@@ -628,33 +651,9 @@ public class CoyoteAdapter implements Ad
             return false;
         }
 
-        // Filter trace method
-        if (!connector.getAllowTrace() 
-                && req.method().equalsIgnoreCase("TRACE")) {
-            Wrapper wrapper = request.getWrapper();
-            String header = null;
-            if (wrapper != null) {
-                String[] methods = wrapper.getServletMethods();
-                if (methods != null) {
-                    for (int i=0; i<methods.length; i++) {
-                        if ("TRACE".equals(methods[i])) {
-                            continue;
-                        }
-                        if (header == null) {
-                            header = methods[i];
-                        } else {
-                            header += ", " + methods[i];
-                        }
-                    }
-                }
-            }                               
-            res.setStatus(405);
-            res.addHeader("Allow", header);
-            res.setMessage("TRACE method is not allowed");
-            request.getContext().logAccess(request, response, 0, true);
-            return false;
-        }
-
+        // Finally look for session ID in cookies and SSL session
+        parseSessionCookiesId(req, request);
+        parseSessionSslId(request);
         return true;
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org