diff --git a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/docker/compose/LLdapDockerComposeConnectionDetailsFactory.java b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/docker/compose/LLdapDockerComposeConnectionDetailsFactory.java index 8f73305672e..6bec236ea1e 100644 --- a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/docker/compose/LLdapDockerComposeConnectionDetailsFactory.java +++ b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/docker/compose/LLdapDockerComposeConnectionDetailsFactory.java @@ -60,15 +60,20 @@ class LLdapDockerComposeConnectionDetailsFactory extends DockerComposeConnection super(service); Map env = service.env(); boolean usesTls = Boolean.parseBoolean(env.getOrDefault("LLDAP_LDAPS_OPTIONS__ENABLED", "false")); - String ldapPort = usesTls ? env.getOrDefault("LLDAP_LDAPS_OPTIONS__PORT", "6360") - : env.getOrDefault("LLDAP_LDAP_PORT", "3890"); + String ldapPort = usesTls ? getFromEnv(env, "LLDAP_LDAPS_OPTIONS__PORT", "6360") + : getFromEnv(env, "LLDAP_LDAP_PORT", "3890"); this.urls = new String[] { "%s://%s:%d".formatted(usesTls ? "ldaps" : "ldap", service.host(), service.ports().get(Integer.parseInt(ldapPort))) }; - this.base = env.getOrDefault("LLDAP_LDAP_BASE_DN", "dc=example,dc=com"); - this.password = env.getOrDefault("LLDAP_LDAP_USER_PASS", "password"); + this.base = getFromEnv(env, "LLDAP_LDAP_BASE_DN", "dc=example,dc=com"); + this.password = getFromEnv(env, "LLDAP_LDAP_USER_PASS", "password"); this.username = "cn=admin,ou=people,%s".formatted(this.base); } + private static String getFromEnv(Map env, String key, String defaultValue) { + String result = env.get(key); + return (result != null) ? result : defaultValue; + } + @Override public String[] getUrls() { return this.urls; diff --git a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/docker/compose/OpenLdapDockerComposeConnectionDetailsFactory.java b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/docker/compose/OpenLdapDockerComposeConnectionDetailsFactory.java index aff9cf00dd1..86b362cd1e6 100644 --- a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/docker/compose/OpenLdapDockerComposeConnectionDetailsFactory.java +++ b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/docker/compose/OpenLdapDockerComposeConnectionDetailsFactory.java @@ -63,21 +63,27 @@ class OpenLdapDockerComposeConnectionDetailsFactory super(service); Map env = service.env(); boolean usesTls = Boolean.parseBoolean(env.getOrDefault("LDAP_TLS", "true")); - String ldapPort = usesTls ? env.getOrDefault("LDAPS_PORT", "636") : env.getOrDefault("LDAP_PORT", "389"); + String ldapPort = usesTls ? getFromEnv(env, "LDAPS_PORT", "636") : getFromEnv(env, "LDAP_PORT", "389"); this.urls = new String[] { "%s://%s:%d".formatted(usesTls ? "ldaps" : "ldap", service.host(), service.ports().get(Integer.parseInt(ldapPort))) }; - if (env.containsKey("LDAP_BASE_DN")) { - this.base = env.get("LDAP_BASE_DN"); + String baseDn = env.get("LDAP_BASE_DN"); + if (baseDn != null) { + this.base = baseDn; } else { - this.base = Arrays.stream(env.getOrDefault("LDAP_DOMAIN", "example.org").split("\\.")) + this.base = Arrays.stream(getFromEnv(env, "LDAP_DOMAIN", "example.org").split("\\.")) .map("dc=%s"::formatted) .collect(Collectors.joining(",")); } - this.password = env.getOrDefault("LDAP_ADMIN_PASSWORD", "admin"); + this.password = getFromEnv(env, "LDAP_ADMIN_PASSWORD", "admin"); this.username = "cn=admin,%s".formatted(this.base); } + private static String getFromEnv(Map env, String key, String defaultValue) { + String result = env.get(key); + return (result != null) ? result : defaultValue; + } + @Override public String[] getUrls() { return this.urls;