mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-10-04 08:19:50 +00:00
Improve null-safety of module/spring-boot-ldap
See gh-46926
This commit is contained in:
+9
-4
@@ -60,15 +60,20 @@ class LLdapDockerComposeConnectionDetailsFactory extends DockerComposeConnection
|
||||
super(service);
|
||||
Map<String, @Nullable String> 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<String, @Nullable String> env, String key, String defaultValue) {
|
||||
String result = env.get(key);
|
||||
return (result != null) ? result : defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getUrls() {
|
||||
return this.urls;
|
||||
|
||||
+11
-5
@@ -63,21 +63,27 @@ class OpenLdapDockerComposeConnectionDetailsFactory
|
||||
super(service);
|
||||
Map<String, @Nullable String> 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<String, @Nullable String> env, String key, String defaultValue) {
|
||||
String result = env.get(key);
|
||||
return (result != null) ? result : defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getUrls() {
|
||||
return this.urls;
|
||||
|
||||
Reference in New Issue
Block a user