olegk 2003/06/12 12:12:17 Modified: httpclient/src/java/org/apache/commons/httpclient/cookie CookieSpecBase.java httpclient/src/test/org/apache/commons/httpclient TestCookie.java Log: RFC2109 cookie spec implementation does not properly handle default cookie path with a single leading back-slash ('/whatever.php'). Default cookie path with multiple back-slashes is processed correctly ('/path/whatever.php') Reported by Dan Ã…berg <[EMAIL PROTECTED]> Contributed by Oleg Kalnichevski Revision Changes Path 1.16 +8 -4 jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java Index: CookieSpecBase.java =================================================================== RCS file: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- CookieSpecBase.java 26 May 2003 17:58:03 -0000 1.15 +++ CookieSpecBase.java 12 Jun 2003 19:12:16 -0000 1.16 @@ -176,7 +176,11 @@ String defaultPath = path; int lastSlashIndex = defaultPath.lastIndexOf(PATH_DELIM); - if (lastSlashIndex > 0) { + if (lastSlashIndex >= 0) { + if (lastSlashIndex == 0) { + //Do not remove the very first slash + lastSlashIndex = 1; + } defaultPath = defaultPath.substring(0, lastSlashIndex); } 1.22 +21 -4 jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestCookie.java Index: TestCookie.java =================================================================== RCS file: /home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestCookie.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- TestCookie.java 7 Mar 2003 18:23:46 -0000 1.21 +++ TestCookie.java 12 Jun 2003 19:12:16 -0000 1.22 @@ -298,6 +298,23 @@ } + public void testParseSimple2() throws Exception { + Header setCookie = new Header("Set-Cookie","cookie-name=cookie-value"); + Cookie[] parsed = cookieParse("127.0.0.1","/path",setCookie); + assertEquals("Found 1 cookie.",1,parsed.length); + assertEquals("Name","cookie-name",parsed[0].getName()); + assertEquals("Value","cookie-value",parsed[0].getValue()); + assertTrue("Comment",null == parsed[0].getComment()); + assertTrue("ExpiryDate",null == parsed[0].getExpiryDate()); + //assertTrue("isToBeDiscarded",parsed[0].isToBeDiscarded()); + assertTrue("isPersistent",!parsed[0].isPersistent()); + assertEquals("Domain","127.0.0.1",parsed[0].getDomain()); + assertEquals("Path","/",parsed[0].getPath()); + assertTrue("Secure",!parsed[0].getSecure()); + assertEquals("Version",0,parsed[0].getVersion()); + } + + public void testParseNoValue() throws Exception { Header setCookie = new Header("Set-Cookie","cookie-name="); Cookie[] parsed = cookieParse("127.0.0.1","/",setCookie);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]