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: [email protected]
For additional commands, e-mail: [email protected]