From d26b6895efe7e0c2bc69d1b4cd69746a6a26f3f1 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 5 Feb 2026 15:17:18 +0000 Subject: [PATCH] Start building against Spring LDAP 4.1.0-M1 snapshots See gh-49119 --- .../embedded/EmbeddedLdapAutoConfiguration.java | 8 +++++--- .../autoconfigure/embedded/EmbeddedLdapProperties.java | 5 ----- .../boot/ldap/health/LdapHealthIndicator.java | 8 +++++--- .../ldap/autoconfigure/LdapAutoConfigurationTests.java | 4 +--- platform/spring-boot-dependencies/build.gradle | 2 +- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapAutoConfiguration.java b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapAutoConfiguration.java index a2f51bc1419..f35fe581f3e 100644 --- a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapAutoConfiguration.java +++ b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapAutoConfiguration.java @@ -244,9 +244,11 @@ public final class EmbeddedLdapAutoConfiguration implements DisposableBean { EmbeddedLdapProperties embeddedProperties) { LdapContextSource source = new LdapContextSource(); source.setBase(properties.getBase()); - if (embeddedProperties.getCredential().isAvailable()) { - source.setUserDn(embeddedProperties.getCredential().getUsername()); - source.setPassword(embeddedProperties.getCredential().getPassword()); + String username = embeddedProperties.getCredential().getUsername(); + String password = embeddedProperties.getCredential().getPassword(); + if (StringUtils.hasText(username) && StringUtils.hasText(password)) { + source.setUserDn(username); + source.setPassword(password); } source.setUrls(properties.determineUrls(environment)); return source; diff --git a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapProperties.java b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapProperties.java index c43c72237db..f3a7303ee08 100644 --- a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapProperties.java +++ b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapProperties.java @@ -24,7 +24,6 @@ import org.jspecify.annotations.Nullable; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.convert.Delimiter; import org.springframework.core.io.Resource; -import org.springframework.util.StringUtils; /** * Configuration properties for Embedded LDAP. @@ -135,10 +134,6 @@ public class EmbeddedLdapProperties { this.password = password; } - boolean isAvailable() { - return StringUtils.hasText(this.username) && StringUtils.hasText(this.password); - } - } public static class Ssl { diff --git a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/health/LdapHealthIndicator.java b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/health/LdapHealthIndicator.java index bb3b9747713..df021b8430b 100644 --- a/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/health/LdapHealthIndicator.java +++ b/module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/health/LdapHealthIndicator.java @@ -37,7 +37,7 @@ import org.springframework.util.Assert; */ public class LdapHealthIndicator extends AbstractHealthIndicator { - private static final ContextExecutor versionContextExecutor = new VersionContextExecutor(); + private static final ContextExecutor<@Nullable String> versionContextExecutor = new VersionContextExecutor(); private final LdapOperations ldapOperations; @@ -50,10 +50,12 @@ public class LdapHealthIndicator extends AbstractHealthIndicator { @Override protected void doHealthCheck(Health.Builder builder) throws Exception { String version = this.ldapOperations.executeReadOnly(versionContextExecutor); - builder.up().withDetail("version", version); + if (version != null) { + builder.up().withDetail("version", version); + } } - private static final class VersionContextExecutor implements ContextExecutor { + private static final class VersionContextExecutor implements ContextExecutor<@Nullable String> { @Override public @Nullable String executeWithContext(DirContext ctx) throws NamingException { diff --git a/module/spring-boot-ldap/src/test/java/org/springframework/boot/ldap/autoconfigure/LdapAutoConfigurationTests.java b/module/spring-boot-ldap/src/test/java/org/springframework/boot/ldap/autoconfigure/LdapAutoConfigurationTests.java index 01b51af2e2a..18ae1664608 100644 --- a/module/spring-boot-ldap/src/test/java/org/springframework/boot/ldap/autoconfigure/LdapAutoConfigurationTests.java +++ b/module/spring-boot-ldap/src/test/java/org/springframework/boot/ldap/autoconfigure/LdapAutoConfigurationTests.java @@ -272,9 +272,7 @@ class LdapAutoConfigurationTests { @Bean @Primary PooledContextSource pooledContextSource(LdapContextSource ldapContextSource) { - PooledContextSource pooledContextSource = new PooledContextSource(new PoolConfig()); - pooledContextSource.setContextSource(ldapContextSource); - return pooledContextSource; + return new PooledContextSource(ldapContextSource, new PoolConfig()); } } diff --git a/platform/spring-boot-dependencies/build.gradle b/platform/spring-boot-dependencies/build.gradle index 23e6252976c..6b32acaf4a9 100644 --- a/platform/spring-boot-dependencies/build.gradle +++ b/platform/spring-boot-dependencies/build.gradle @@ -2549,7 +2549,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-kafka/releases/tag/v{version}") } } - library("Spring LDAP", "4.0.1") { + library("Spring LDAP", "4.1.0-SNAPSHOT") { considerSnapshots() group("org.springframework.ldap") { modules = [