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]