Author: fhanik
Date: Tue Mar 18 20:46:17 2008
New Revision: 638695

URL: http://svn.apache.org/viewvc?rev=638695&view=rev
Log:
Only allow version switching on the "value" of the cookie, for the rest, just 
quote like we did in the past. this becomes the most backwards compatible with 
old behavior

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java?rev=638695&r1=638694&r2=638695&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java Tue Mar 18 
20:46:17 2008
@@ -255,7 +255,7 @@
         buf.append("=");
         // Servlet implementation does not check anything else
         
-        version = maybeQuote2(version, buf, value);
+        version = maybeQuote2(version, buf, value,true);
 
         // Add version 1 specific information
         if (version == 1) {
@@ -299,10 +299,7 @@
         // Path=path
         if (path!=null) {
             buf.append ("; Path=");
-            if (version>0)
-                maybeQuote2(version, buf, path); //don't quote the path for v0 
cookies
-            else
-                buf.append(path);
+            maybeQuote2(version, buf, path);
         }
 
         // Secure
@@ -340,6 +337,10 @@
      * @param value
      */
     public static int maybeQuote2 (int version, StringBuffer buf, String 
value) {
+        return maybeQuote2(version,buf,value,false);
+    }
+
+    public static int maybeQuote2 (int version, StringBuffer buf, String 
value, boolean allowVersionSwitch) {
         if (value==null || value.length()==0) {
             buf.append("\"\"");
         }else if (containsCTL(value,version)) 
@@ -348,7 +349,7 @@
             buf.append('"');
             buf.append(escapeDoubleQuotes(value,1,value.length()-1));
             buf.append('"');
-        } else if ((!STRICT_SERVLET_COMPLIANCE) && version==0 && 
!isToken2(value)) {
+        } else if (allowVersionSwitch && (!STRICT_SERVLET_COMPLIANCE) && 
version==0 && !isToken2(value)) {
             buf.append('"');
             buf.append(escapeDoubleQuotes(value,0,value.length()));
             buf.append('"');



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to