From efd36db57d81ceac3bdb3ce87e023e5fb1edbc8e Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Fri, 20 May 2016 11:15:05 +0800 Subject: [PATCH] 8149521: automatic discovery of LDAP servers with Kerberos authentication Reviewed-by: vinnie --- .../share/classes/sun/security/krb5/PrincipalName.java | 3 +++ jdk/test/sun/security/krb5/canonicalize/Test.java | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java index e60507fe443..b3a0e8bea38 100644 --- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java +++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java @@ -424,6 +424,9 @@ public class PrincipalName implements Cloneable { } catch (UnknownHostException | SecurityException e) { // not canonicalized or no permission to do so, use old } + if (hostName.endsWith(".")) { + hostName = hostName.substring(0, hostName.length() - 1); + } nameParts[1] = hostName.toLowerCase(Locale.ENGLISH); } nameStrings = nameParts; diff --git a/jdk/test/sun/security/krb5/canonicalize/Test.java b/jdk/test/sun/security/krb5/canonicalize/Test.java index 8d21a50727f..62c44de9984 100644 --- a/jdk/test/sun/security/krb5/canonicalize/Test.java +++ b/jdk/test/sun/security/krb5/canonicalize/Test.java @@ -22,7 +22,7 @@ */ /* * @test - * @bug 6682516 + * @bug 6682516 8149521 * @summary SPNEGO_HTTP_AUTH/WWW_KRB and SPNEGO_HTTP_AUTH/WWW_SPNEGO failed on all non-windows platforms * @modules java.security.jgss/sun.security.krb5 * @run main/othervm -Djava.security.krb5.conf=krb5.conf Test @@ -44,9 +44,11 @@ public class Test { check("c1", "c1.this.domain"); check("c1.this", "c1.this.domain"); check("c1.this.domain", "c1.this.domain"); + check("c1.this.domain.", "c1.this.domain"); // canonicalized name goes IP, reject check("c2", "c2"); + check("c2.", "c2"); // canonicalized name goes strange, reject check("c3", "c3"); @@ -63,4 +65,4 @@ public class Test { throw new Exception("Output is " + pn); } } - } +}