Author: olegk
Date: Thu May  4 08:31:12 2006
New Revision: 399735

URL: http://svn.apache.org/viewcvs?rev=399735&view=rev
Log:
Fixed inconsistencies in usage of the effective host name

Modified:
    
jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/java/org/apache/commons/httpclient/cookie/RFC2965Spec.java

Modified: 
jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/java/org/apache/commons/httpclient/cookie/RFC2965Spec.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/java/org/apache/commons/httpclient/cookie/RFC2965Spec.java?rev=399735&r1=399734&r2=399735&view=diff
==============================================================================
--- 
jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/java/org/apache/commons/httpclient/cookie/RFC2965Spec.java
 (original)
+++ 
jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/java/org/apache/commons/httpclient/cookie/RFC2965Spec.java
 Thu May  4 08:31:12 2006
@@ -247,7 +247,7 @@
         if (path.trim().equals("")) {
             path = PATH_DELIM;
         }
-        host = host.toLowerCase();
+        host = getEffectiveHost(host);
 
         HeaderElement[] headerElements =
                 HeaderElement.parseElements(header.toCharArray());
@@ -348,7 +348,7 @@
             if (cookie.getName().startsWith("$")) {
                 throw new MalformedCookieException("Cookie name may not start 
with $");
             }
-            CookieOrigin origin = new CookieOrigin(host, port, path, secure); 
+            CookieOrigin origin = new CookieOrigin(getEffectiveHost(host), 
port, path, secure); 
             for (Iterator i = getAttribHandlerIterator(); i.hasNext(); ) {
               CookieAttributeHandler handler = (CookieAttributeHandler) 
i.next();
               handler.validate(cookie, origin);
@@ -381,7 +381,7 @@
             if (cookie.isPersistent() && cookie.isExpired()) {
                 return false;
             }
-            CookieOrigin origin = new CookieOrigin(host, port, path, secure); 
+            CookieOrigin origin = new CookieOrigin(getEffectiveHost(host), 
port, path, secure); 
             for (Iterator i = getAttribHandlerIterator(); i.hasNext(); ) {
                 CookieAttributeHandler handler = (CookieAttributeHandler) 
i.next();
                 if (!handler.match(cookie, origin)) {
@@ -555,7 +555,7 @@
      * @return
      */
     private static String getEffectiveHost(final String host) {
-        String effectiveHost = host;
+        String effectiveHost = host.toLowerCase();
         if (host.indexOf('.') < 0) {
             effectiveHost += ".local";
         }
@@ -761,8 +761,7 @@
                 }
 
                 // The effective host name must domain-match domain attribute.
-                String effectiveHost = getEffectiveHost(host);
-                if (!domainMatch(effectiveHost, cookieDomain)) {
+                if (!domainMatch(host, cookieDomain)) {
                     throw new MalformedCookieException(
                             "Domain attribute \"" + cookie.getDomain()
                             + "\" violates RFC 2965: effective host name does 
not "
@@ -770,9 +769,8 @@
                 }
 
                 // effective host name minus domain must not contain any dots
-                String effectiveHostWithoutDomain =
-                        effectiveHost.substring(0, effectiveHost.length()
-                                                   - cookieDomain.length());
+                String effectiveHostWithoutDomain = host.substring(
+                        0, host.length() - cookieDomain.length());
                 if (effectiveHostWithoutDomain.indexOf('.') != -1) {
                     throw new MalformedCookieException("Domain attribute \""
                                                        + cookie.getDomain() + 
"\" violates RFC 2965: "
@@ -802,17 +800,15 @@
             }
             String host = origin.getHost().toLowerCase();
             String cookieDomain = cookie.getDomain();
-            String effectiveHost = getEffectiveHost(host);
 
             // The effective host name MUST domain-match the Domain
             // attribute of the cookie.
-            if (!domainMatch(effectiveHost, cookieDomain)) {
+            if (!domainMatch(host, cookieDomain)) {
                 return false;
             }
             // effective host name minus domain must not contain any dots
-            String effectiveHostWithoutDomain =
-                    effectiveHost.substring(0, effectiveHost.length()
-                                               - cookieDomain.length());
+            String effectiveHostWithoutDomain = host.substring(
+                    0, host.length() - cookieDomain.length());
             if (effectiveHostWithoutDomain.indexOf('.') != -1) {
                 return false;
             }



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

Reply via email to