craigmcc    01/09/05 11:35:32

  Modified:    catalina/src/share/org/apache/catalina/util CookieTools.java
               catalina/src/test/org/apache/catalina/util
                        CookieToolsTestCase.java
  Log:
  Some browsers don't like URL-encoded "path" attributes in cookies, so
  don't URL encode that part.  For such browsers, the net effect is that
  sessions would have worked only with URL rewriting.  Now, cookie based
  sessions work correctly again.
  
  Submitted by: Glenn Nielsen <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.5       +8 -7      
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CookieTools.java
  
  Index: CookieTools.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CookieTools.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CookieTools.java  2001/09/04 21:02:35     1.4
  +++ CookieTools.java  2001/09/05 18:35:32     1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CookieTools.java,v
 1.4 2001/09/04 21:02:35 craigmcc Exp $
  - * $Revision: 1.4 $
  - * $Date: 2001/09/04 21:02:35 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CookieTools.java,v
 1.5 2001/09/05 18:35:32 craigmcc Exp $
  + * $Revision: 1.5 $
  + * $Date: 2001/09/05 18:35:32 $
    *
    * ====================================================================
    *
  @@ -110,7 +110,7 @@
   
           buf.append(URLEncoder.encode(cookie.getName()));
           buf.append("=");
  -        maybeQuote(version, buf, cookie.getValue());
  +        maybeQuote(version, buf, URLEncoder.encode(cookie.getValue()));
   
           // add version 1 specific information
           if (version == 1) {
  @@ -120,7 +120,8 @@
               // Comment=comment
               if (cookie.getComment() != null) {
                   buf.append (";Comment=");
  -                maybeQuote (version, buf, cookie.getComment());
  +                maybeQuote (version, buf,
  +                            URLEncoder.encode(cookie.getComment()));
               }
           }
   
  @@ -166,10 +167,10 @@
                                       String value)
       {
           if (version == 0 || isToken (value))
  -          buf.append (URLEncoder.encode(value));
  +            buf.append (value);
           else {
               buf.append ('"');
  -            buf.append (URLEncoder.encode(value));
  +            buf.append (value);
               buf.append ('"');
           }
       }
  
  
  
  1.3       +6 -6      
jakarta-tomcat-4.0/catalina/src/test/org/apache/catalina/util/CookieToolsTestCase.java
  
  Index: CookieToolsTestCase.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/test/org/apache/catalina/util/CookieToolsTestCase.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CookieToolsTestCase.java  2001/09/05 17:29:14     1.2
  +++ CookieToolsTestCase.java  2001/09/05 18:35:32     1.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/test/org/apache/catalina/util/CookieToolsTestCase.java,v
 1.2 2001/09/05 17:29:14 craigmcc Exp $
  - * $Revision: 1.2 $
  - * $Date: 2001/09/05 17:29:14 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/test/org/apache/catalina/util/CookieToolsTestCase.java,v
 1.3 2001/09/05 18:35:32 craigmcc Exp $
  + * $Revision: 1.3 $
  + * $Date: 2001/09/05 18:35:32 $
    *
    * ====================================================================
    *
  @@ -74,7 +74,7 @@
    * Unit tests for the <code>CookieTools</code> class.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.2 $ $Date: 2001/09/05 17:29:14 $
  + * @version $Revision: 1.3 $ $Date: 2001/09/05 18:35:32 $
    */
   
   public class CookieToolsTestCase extends TestCase {
  @@ -185,13 +185,13 @@
           sb = new StringBuffer();
           CookieTools.getCookieHeaderValue(version0, sb);
           assertEquals("Version 0 cookie header value",
  -                     
"Version+0+Name=Version+0+Value;Domain=localhost;Path=%2Fversion0",
  +                     
"Version+0+Name=Version+0+Value;Domain=localhost;Path=/version0",
                        sb.toString());
   
           sb = new StringBuffer();
           CookieTools.getCookieHeaderValue(version1, sb);
           assertEquals("Version 1 cookie header value",
  -                     
"Version+1+Name=\"Version+1+Value\";Version=1;Comment=\"Version+1+Comment\";Domain=localhost;Discard;Path=\"%2Fversion1\"",
  +                     
"Version+1+Name=Version+1+Value;Version=1;Comment=Version+1+Comment;Domain=localhost;Discard;Path=\"/version1\"",
                        sb.toString());
   
       }
  
  
  

Reply via email to