You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ol...@apache.org on 2005/01/30 19:51:44 UTC

svn commit: r149137 - in jakarta/commons/proper/httpclient/trunk/src: java/org/apache/commons/httpclient/cookie/ test/org/apache/commons/httpclient/ test/org/apache/commons/httpclient/cookie/

Author: olegk
Date: Sun Jan 30 10:51:43 2005
New Revision: 149137

URL: http://svn.apache.org/viewcvs?view=rev&rev=149137
Log:
PR #32833 (Cookie with domain .mydomain.com not sent to host mydomain.com)

Contributed by David D. Kilzer <ddkilzer at kilzer.net>
Reviewed by Oleg Kalnichevski, Michael Becke

Modified:
    jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java
    jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java
    jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestWebappBase.java
    jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java
    jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java

Modified: jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java?view=diff&r1=149136&r2=149137
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java (original)
+++ jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java Sun Jan 30 10:51:43 2005
@@ -1,7 +1,7 @@
 /*
  * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java,v 1.28 2004/11/06 19:15:42 mbecke Exp $
  * $Revision: 1.28 $
- * $Date: 2004/11/06 19:15:42 $
+ * $Date$
  *
  * ====================================================================
  *
@@ -503,7 +503,8 @@
      * @return true if the specified host matches the given domain.
      */
     public boolean domainMatch(final String host, final String domain) {
-        return host.endsWith(domain);
+        return host.endsWith(domain)
+            || (domain.startsWith(".") && host.endsWith(domain.substring(1)));
     }
 
     /**

Modified: jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java?view=diff&r1=149136&r2=149137
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java (original)
+++ jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java Sun Jan 30 10:51:43 2005
@@ -1,7 +1,7 @@
 /*
  * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java,v 1.11 2004/05/13 04:02:00 mbecke Exp $
  * $Revision: 1.11 $
- * $Date: 2004/05/13 04:02:00 $
+ * $Date$
  *
  * ====================================================================
  *
@@ -194,6 +194,16 @@
         } else {
             super.parseAttribute(attribute, cookie);
         }
+    }
+
+    /**
+     * Performs domain-match as described in the Netscape draft.
+     * @param host The target host.
+     * @param domain The cookie domain attribute.
+     * @return true if the specified host matches the given domain.
+     */
+    public boolean domainMatch(final String host, final String domain) {
+        return host.endsWith(domain);
     }
 
     /**

Modified: jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestWebappBase.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestWebappBase.java?view=diff&r1=149136&r2=149137
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestWebappBase.java (original)
+++ jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestWebappBase.java Sun Jan 30 10:51:43 2005
@@ -1,7 +1,7 @@
 /*
  * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestWebappBase.java,v 1.7 2004/02/22 18:08:50 olegk Exp $
  * $Revision: 1.7 $
- * $Date: 2004/02/22 18:08:50 $
+ * $Date$
  * ====================================================================
  *
  *  Copyright 1999-2004 The Apache Software Foundation
@@ -49,7 +49,9 @@
  * "httpclient.test.webappContext" property.
  *
  * @author Rodney Waldhoff
- * @version $Id: TestWebappBase.java,v 1.7 2004/02/22 18:08:50 olegk Exp $
+ * @version $Id$
+ * 
+ * @deprecated
  */
 public abstract class TestWebappBase extends TestLocalHostBase {
 

Modified: jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java?view=diff&r1=149136&r2=149137
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java (original)
+++ jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java Sun Jan 30 10:51:43 2005
@@ -1,7 +1,7 @@
 /*
  * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java,v 1.7 2004/09/14 20:11:32 olegk Exp $
  * $Revision: 1.7 $
- * $Date: 2004/09/14 20:11:32 $
+ * $Date$
  * ====================================================================
  *
  *  Copyright 1999-2004 The Apache Software Foundation
@@ -790,6 +790,15 @@
 
         CookieSpec cookiespec = new CookieSpecBase();
         cookiespec.validate("sourceforge.net", 80, "/", false, cookie);
+    }
+
+    public void testSecondDomainLevelCookieMatch() throws Exception {
+        Cookie cookie = new Cookie(".sourceforge.net", "name", null, "/", null, false); 
+        cookie.setDomainAttributeSpecified(true);
+        cookie.setPathAttributeSpecified(true);
+
+        CookieSpec cookiespec = new CookieSpecBase();
+        assertTrue(cookiespec.match("sourceforge.net", 80, "/", false, cookie));
     }
 
     public void testMatchNullHost() throws Exception {

Modified: jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java?view=diff&r1=149136&r2=149137
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java (original)
+++ jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java Sun Jan 30 10:51:43 2005
@@ -1,7 +1,7 @@
 /*
  * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java,v 1.3 2004/06/05 16:49:20 olegk Exp $
  * $Revision: 1.3 $
- * $Date: 2004/06/05 16:49:20 $
+ * $Date$
  * ====================================================================
  *
  *  Copyright 1999-2004 The Apache Software Foundation
@@ -222,6 +222,15 @@
         }
     }    
 
+    public void testSecondDomainLevelCookieMatch() throws Exception {
+        Cookie cookie = new Cookie(".sourceforge.net", "name", null, "/", null, false); 
+        cookie.setDomainAttributeSpecified(true);
+        cookie.setPathAttributeSpecified(true);
+
+        CookieSpec cookiespec = new RFC2109Spec();
+        assertFalse(cookiespec.match("sourceforge.net", 80, "/", false, cookie));
+    }
+    
     public void testParseWithWrongPath() throws Exception {
         Header header = new Header("Set-Cookie",
             "cookie-name=cookie-value; domain=127.0.0.1; path=/not/just/root");



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org