Author: markt Date: Thu May 20 09:49:24 2010 New Revision: 946584 URL: http://svn.apache.org/viewvc?rev=946584&view=rev Log: Fix lost session path parameter on redirect
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=946584&r1=946583&r2=946584&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Thu May 20 09:49:24 2010 @@ -588,6 +588,22 @@ public class CoyoteAdapter implements Ad return false; } + // Now we have the context, we can parse the session ID from the URL + // (if any). Need to do this before we redirect in case we need to + // include the session id in the redirect + if (request.getServletContext().getEffectiveSessionTrackingModes() + .contains(SessionTrackingMode.URL)) { + + // Get the session ID if there was one + String sessionID = request.getPathParameter( + ApplicationSessionCookieConfig.getSessionUriParamName( + request.getContext())); + if (sessionID != null) { + request.setRequestedSessionId(sessionID); + request.setRequestedSessionURL(true); + } + } + // Possible redirect MessageBytes redirectPathMB = request.getMappingData().redirectPath; if (!redirectPathMB.isNull()) { @@ -610,19 +626,7 @@ public class CoyoteAdapter implements Ad return false; } - // Parse session Id - if (request.getServletContext().getEffectiveSessionTrackingModes() - .contains(SessionTrackingMode.URL)) { - - // Get the session ID if there was one - String sessionID = request.getPathParameter( - ApplicationSessionCookieConfig.getSessionUriParamName( - request.getContext())); - if (sessionID != null) { - request.setRequestedSessionId(sessionID); - request.setRequestedSessionURL(true); - } - } + // Finally look for session ID in cookies and SSL session parseSessionCookiesId(req, request); parseSessionSslId(request); return true; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org