From 8862101960029d0ec41a546a1db85c6ebaeacc63 Mon Sep 17 00:00:00 2001 From: chegar Date: Mon, 22 Aug 2011 14:09:28 +0100 Subject: [PATCH] 7023713: HttpCookie.domainMatches("hostname.local", "hostname") should return true Reviewed-by: chegar Contributed-by: zhouyx@linux.vnet.ibm.com --- src/share/classes/java/net/HttpCookie.java | 8 ++++++-- test/java/net/CookieHandler/TestHttpCookie.java | 13 +++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/share/classes/java/net/HttpCookie.java b/src/share/classes/java/net/HttpCookie.java index 34e601269..a932a5fef 100644 --- a/src/share/classes/java/net/HttpCookie.java +++ b/src/share/classes/java/net/HttpCookie.java @@ -748,10 +748,14 @@ public final class HttpCookie implements Cloneable { && (embeddedDotInDomain == -1 || embeddedDotInDomain == domain.length() - 1)) return false; - // if the host name contains no dot and the domain name is .local + // if the host name contains no dot and the domain name + // is .local or host.local int firstDotInHost = host.indexOf('.'); - if (firstDotInHost == -1 && isLocalDomain) + if (firstDotInHost == -1 && + (isLocalDomain || + domain.equalsIgnoreCase(host + ".local"))) { return true; + } int domainLength = domain.length(); int lengthDiff = host.length() - domainLength; diff --git a/test/java/net/CookieHandler/TestHttpCookie.java b/test/java/net/CookieHandler/TestHttpCookie.java index 7d167532c..cf93df935 100644 --- a/test/java/net/CookieHandler/TestHttpCookie.java +++ b/test/java/net/CookieHandler/TestHttpCookie.java @@ -362,12 +362,13 @@ public class TestHttpCookie { eq(c1, c2, false); header("Test domainMatches()"); - dm(".foo.com", "y.x.foo.com", false); - dm(".foo.com", "x.foo.com", true); - dm(".com", "whatever.com", false); - dm(".com.", "whatever.com", false); - dm(".ajax.com", "ajax.com", true); - dm(".local", "example.local", true); + dm(".foo.com", "y.x.foo.com", false); + dm(".foo.com", "x.foo.com", true); + dm(".com", "whatever.com", false); + dm(".com.", "whatever.com", false); + dm(".ajax.com", "ajax.com", true); + dm(".local", "example.local", true); + dm("example.local", "example", true); // bug 6277808 testCount++; -- GitLab