keycloak-aplcache

Merge pull request #1049 from mposolda/master Attempt to

3/16/2015 10:57:50 AM

Details

diff --git a/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/EmbeddedServersFactory.java b/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/EmbeddedServersFactory.java
index 4c3fab6..cd05b3e 100644
--- a/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/EmbeddedServersFactory.java
+++ b/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/EmbeddedServersFactory.java
@@ -3,6 +3,13 @@ package org.keycloak.testutils.ldap;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 
+import org.ietf.jgss.GSSException;
+import org.ietf.jgss.GSSManager;
+import org.ietf.jgss.GSSName;
+import org.keycloak.util.KerberosSerializationUtils;
+import sun.security.jgss.GSSNameImpl;
+import sun.security.jgss.krb5.Krb5NameElement;
+
 /**
  * Factory for ApacheDS based LDAP and Kerberos servers
  *
@@ -71,9 +78,11 @@ public class EmbeddedServersFactory {
         if (ldapSaslPrincipal == null || ldapSaslPrincipal.isEmpty()) {
             try {
                 // Same algorithm like sun.security.krb5.PrincipalName constructor
-                String canonicalHost = (InetAddress.getByName(bindHost)).getCanonicalHostName();
-                this.ldapSaslPrincipal = "ldap/" + canonicalHost + "@" + kerberosRealm;
-            } catch (UnknownHostException uhe) {
+                GSSName gssName = GSSManager.getInstance().createName("ldap@localhost", GSSName.NT_HOSTBASED_SERVICE);
+                GSSNameImpl gssName1 = (GSSNameImpl) gssName;
+                Krb5NameElement krb5NameElement = (Krb5NameElement) gssName1.getElement(KerberosSerializationUtils.KRB5_OID);
+                this.ldapSaslPrincipal = krb5NameElement.getKrb5PrincipalName().toString();
+            } catch (GSSException uhe) {
                 throw new RuntimeException(uhe);
             }
         }