Skip to content

Commit e844851

Browse files
committed
Add ssl nested class in EmbeddedLdapProperties.
Setup autoconfiguration of LDAP listener with ssl. Add tests using ssl. Issue#48060 Signed-off-by: CatiaCorreia catia.correia97@gmail.com Signed-off-by: CatiaCorreia <catia.correia97@gmail.com>
1 parent fd7c3e2 commit e844851

File tree

3 files changed

+26
-28
lines changed

3 files changed

+26
-28
lines changed

module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapAutoConfiguration.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ public final class EmbeddedLdapAutoConfiguration implements DisposableBean {
115115
}
116116

117117
@Bean
118-
InMemoryDirectoryServer directoryServer(ApplicationContext applicationContext, ObjectProvider<SslBundles> sslBundles)
119-
throws LDAPException, KeyStoreException, IOException,
118+
InMemoryDirectoryServer directoryServer(ApplicationContext applicationContext,
119+
ObjectProvider<SslBundles> sslBundles) throws LDAPException, KeyStoreException, IOException,
120120
NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException, KeyManagementException {
121121
String[] baseDn = StringUtils.toStringArray(this.embeddedProperties.getBaseDn());
122122
InMemoryDirectoryServerConfig config = new InMemoryDirectoryServerConfig(baseDn);
@@ -226,7 +226,6 @@ private SSLContext getSslContext(EmbeddedLdapProperties.Ssl ssl, @Nullable SslBu
226226

227227
}
228228
else {
229-
Assert.notNull(ssl.getAlgorithm(), "SSL algorithm must be specified");
230229
SSLContext sslContext = SSLContext.getInstance(ssl.getAlgorithm());
231230
KeyManager[] keyManagers = configureKeyManagers(ssl);
232231
TrustManager[] trustManagers = configureTrustManagers(ssl);

module/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapProperties.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ public static class Ssl {
161161
}
162162
}
163163
}
164-
catch (NoSuchAlgorithmException e) {
164+
catch (NoSuchAlgorithmException ex) {
165165
// nothing
166166
}
167167
DEFAULT_PROTOCOL = protocol;
@@ -306,7 +306,7 @@ public String getAlgorithm() {
306306
return this.algorithm;
307307
}
308308

309-
public void setAlgorithm( String sslAlgorithm) {
309+
public void setAlgorithm(String sslAlgorithm) {
310310
this.algorithm = sslAlgorithm;
311311
}
312312

module/spring-boot-ldap/src/test/java/org/springframework/boot/ldap/autoconfigure/embedded/EmbeddedLdapAutoConfigurationTests.java

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -82,29 +82,28 @@ void testServerDefaultNoSsl() {
8282
});
8383
}
8484

85-
@Test
86-
void testServerWithSslBundle() {
87-
List<String> propertyValues = new ArrayList<>();
88-
String location = "classpath:org/springframework/boot/ldap/autoconfigure/embedded/";
89-
propertyValues.add("spring.ssl.bundle.jks.test.keystore.password=secret");
90-
propertyValues.add("spring.ssl.bundle.jks.test.keystore.location=" + location + "test.jks");
91-
propertyValues.add("spring.ssl.bundle.jks.test.truststore.location=" + location + "test.jks");
92-
propertyValues.add("spring.ldap.embedded.port:1234");
93-
propertyValues.add("spring.ldap.embedded.base-dn:dc=spring,dc=org");
94-
propertyValues.add("spring.ldap.embedded.ssl.enabled:true");
95-
propertyValues.add("spring.ldap.embedded.ssl.bundle:test");
96-
this.contextRunner
97-
.withPropertyValues(propertyValues.toArray(String[]::new))
98-
.run((context) -> {
99-
InMemoryDirectoryServer server = context.getBean(InMemoryDirectoryServer.class);
100-
assertThat(server.getConfig().getListenerConfigs().size()).isEqualTo(1);
101-
InMemoryListenerConfig config = server.getConfig().getListenerConfigs().get(0);
102-
assertThat(config.getListenerName()).isEqualTo("LDAPS");
103-
assertThat(config.getListenPort()).isEqualTo(1234);
104-
assertThat(server.getListenPort()).isEqualTo(1234);
105-
assertThat(server.getConnection("LDAPS").getSSLSession()).isNotNull();
106-
});
107-
}
85+
@Test
86+
void testServerWithSslBundle() {
87+
List<String> propertyValues = new ArrayList<>();
88+
String location = "classpath:org/springframework/boot/ldap/autoconfigure/embedded/";
89+
propertyValues.add("spring.ssl.bundle.jks.test.keystore.password=secret");
90+
propertyValues.add("spring.ssl.bundle.jks.test.keystore.location=" + location + "test.jks");
91+
propertyValues.add("spring.ssl.bundle.jks.test.truststore.location=" + location + "test.jks");
92+
propertyValues.add("spring.ssl.bundle.jks.test.protocol=TLSv1.2");
93+
propertyValues.add("spring.ldap.embedded.port:1234");
94+
propertyValues.add("spring.ldap.embedded.base-dn:dc=spring,dc=org");
95+
propertyValues.add("spring.ldap.embedded.ssl.enabled:true");
96+
propertyValues.add("spring.ldap.embedded.ssl.bundle:test");
97+
this.contextRunner.withPropertyValues(propertyValues.toArray(String[]::new)).run((context) -> {
98+
InMemoryDirectoryServer server = context.getBean(InMemoryDirectoryServer.class);
99+
assertThat(server.getConfig().getListenerConfigs().size()).isEqualTo(1);
100+
InMemoryListenerConfig config = server.getConfig().getListenerConfigs().get(0);
101+
assertThat(config.getListenerName()).isEqualTo("LDAPS");
102+
assertThat(config.getListenPort()).isEqualTo(1234);
103+
assertThat(server.getListenPort()).isEqualTo(1234);
104+
assertThat(server.getConnection("LDAPS").getSSLSession()).isNotNull();
105+
});
106+
}
108107

109108
@Test
110109
void testServerWithInvalidSslBundleShouldFail() {

0 commit comments

Comments
 (0)