You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@locus.apache.org on 2000/11/11 02:38:10 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/test HttpProcessor.java
craigmcc 00/11/10 17:38:09
Modified: catalina/src/share/org/apache/catalina/connector/http
HttpProcessor.java
catalina/src/share/org/apache/catalina/connector/test
HttpProcessor.java
Log:
When there are multiple instances of the session id cookie present
(because context paths in which the sessions exist have names that are
proper prefixes of each other, like "/", "/foo", and "/foo/bar"), treat
the *first* cookie value specified as the relevant one for this request,
rather than the *last* one as presently done.
This is based on the RFC 2109 requirement that the browser is supposed to
send such cookies with the most specific path first, and this matches the
"longest match win" rule of how Tomcat selects which context will process
the request.
This patch was inspired by a Tomcat 3.2 patch proposed by Paul Frieden
<pf...@dChain.com>. A modified version of his proposed patch that
provides equivalent functionality for Tomcat 3.2 will be committed next.
Revision Changes Path
1.11 +6 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java
Index: HttpProcessor.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- HttpProcessor.java 2000/11/09 20:15:50 1.10
+++ HttpProcessor.java 2000/11/11 01:38:09 1.11
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.10 2000/11/09 20:15:50 remm Exp $
- * $Revision: 1.10 $
- * $Date: 2000/11/09 20:15:50 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.11 2000/11/11 01:38:09 craigmcc Exp $
+ * $Revision: 1.11 $
+ * $Date: 2000/11/11 01:38:09 $
*
* ====================================================================
*
@@ -106,7 +106,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.10 $ $Date: 2000/11/09 20:15:50 $
+ * @version $Revision: 1.11 $ $Date: 2000/11/11 01:38:09 $
*/
final class HttpProcessor
@@ -537,6 +537,8 @@
log(" Requested cookie session id is " +
((HttpServletRequest) request.getRequest())
.getRequestedSessionId());
+ break; // Accept only the first session id value
+
}
request.addCookie(cookies[i]);
}
1.6 +6 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/test/HttpProcessor.java
Index: HttpProcessor.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/test/HttpProcessor.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- HttpProcessor.java 2000/09/13 20:14:57 1.5
+++ HttpProcessor.java 2000/11/11 01:38:09 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/test/HttpProcessor.java,v 1.5 2000/09/13 20:14:57 craigmcc Exp $
- * $Revision: 1.5 $
- * $Date: 2000/09/13 20:14:57 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/test/HttpProcessor.java,v 1.6 2000/11/11 01:38:09 craigmcc Exp $
+ * $Revision: 1.6 $
+ * $Date: 2000/11/11 01:38:09 $
*
* ====================================================================
*
@@ -104,7 +104,7 @@
* the request. When the processor is completed, it will recycle itself.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2000/09/13 20:14:57 $
+ * @version $Revision: 1.6 $ $Date: 2000/11/11 01:38:09 $
*/
final class HttpProcessor
@@ -448,6 +448,8 @@
if (debug >= 1)
log(" Requested cookie session id is " +
((HttpServletRequest) request.getRequest()).getRequestedSessionId());
+ break; // Accept only the first session id value
+
}
request.addCookie(cookies[i]);
}