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 cd05b3e..3cfb36c 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
@@ -74,18 +74,6 @@ public class EmbeddedServersFactory {
if (kdcEncryptionTypes == null || kdcEncryptionTypes.isEmpty()) {
kdcEncryptionTypes = DEFAULT_KDC_ENCRYPTION_TYPES;
}
-
- if (ldapSaslPrincipal == null || ldapSaslPrincipal.isEmpty()) {
- try {
- // Same algorithm like sun.security.krb5.PrincipalName constructor
- 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);
- }
- }
}
@@ -107,6 +95,19 @@ public class EmbeddedServersFactory {
ldifFile = DEFAULT_KERBEROS_LDIF_FILE;
}
+ // Init ldap sasl principal just when creating kerberos server
+ if (ldapSaslPrincipal == null || ldapSaslPrincipal.isEmpty()) {
+ try {
+ // Same algorithm like sun.security.krb5.PrincipalName constructor
+ GSSName gssName = GSSManager.getInstance().createName("ldap@" + bindHost, 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);
+ }
+ }
+
return new KerberosEmbeddedServer(baseDN, bindHost, bindPort, ldifFile, ldapSaslPrincipal, kerberosRealm, kdcPort, kdcEncryptionTypes);
}
}
diff --git a/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/LDAPEmbeddedServer.java b/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/LDAPEmbeddedServer.java
index e6e7be1..ce7b56b 100644
--- a/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/LDAPEmbeddedServer.java
+++ b/testsuite/integration/src/main/java/org/keycloak/testutils/ldap/LDAPEmbeddedServer.java
@@ -143,7 +143,9 @@ public class LDAPEmbeddedServer {
private void importLdif() throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put("hostname", this.bindHost);
- map.put("ldapSaslPrincipal", this.ldapSaslPrincipal);
+ if (this.ldapSaslPrincipal != null) {
+ map.put("ldapSaslPrincipal", this.ldapSaslPrincipal);
+ }
// For now, assume that LDIF file is on classpath
InputStream is = getClass().getClassLoader().getResourceAsStream(ldifFile);