From bee6fe899c16b1bae911bf7e84e3aa78089fc80f Mon Sep 17 00:00:00 2001 From: Scott Frederick Date: Mon, 22 Jan 2024 16:33:59 -0600 Subject: [PATCH] Polish "Add Docker Compose service connection support for OpenLDAP" See gh-39258 --- .../ldap/LdapAutoConfiguration.java | 2 +- .../ldap/LdapConnectionDetails.java | 10 ++++---- .../ldap/LdapAutoConfigurationTests.java | 4 ++-- ...ockerComposeConnectionDetailsFactory.java} | 20 ++++++++-------- .../service/connection/ldap/package-info.java | 2 +- .../main/resources/META-INF/spring.factories | 2 +- ...ectionDetailsFactoryIntegrationTests.java} | 8 +++---- .../asciidoc/features/docker-compose.adoc | 3 +++ ...dapContainerConnectionDetailsFactory.java} | 23 +++++++++---------- .../main/resources/META-INF/spring.factories | 2 +- ...ectionDetailsFactoryIntegrationTests.java} | 18 ++++----------- .../testcontainers/DockerImageNames.java | 14 +++++------ ...pContainer.java => OpenLdapContainer.java} | 8 +++---- 13 files changed, 56 insertions(+), 60 deletions(-) rename spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/{LdapDockerComposeConnectionDetailsFactory.java => OpenLdapDockerComposeConnectionDetailsFactory.java} (80%) rename spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/ldap/{LdapDockerComposeConnectionDetailsFactoryIntegrationTests.java => OpenLdapDockerComposeConnectionDetailsFactoryIntegrationTests.java} (83%) rename spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ldap/{LdapContainerConnectionDetailsFactory.java => OpenLdapContainerConnectionDetailsFactory.java} (78%) rename spring-boot-project/spring-boot-testcontainers/src/test/java/org/springframework/boot/testcontainers/service/connection/ldap/{LdapContainerConnectionDetailsFactoryIntegrationTests.java => OpenLdapContainerConnectionDetailsFactoryIntegrationTests.java} (78%) rename spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/{LdapContainer.java => OpenLdapContainer.java} (82%) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ldap/LdapAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ldap/LdapAutoConfiguration.java index 0bd691445d..205af4c3e0 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ldap/LdapAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ldap/LdapAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ldap/LdapConnectionDetails.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ldap/LdapConnectionDetails.java index 9e034221ce..efec546594 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ldap/LdapConnectionDetails.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ldap/LdapConnectionDetails.java @@ -19,7 +19,7 @@ package org.springframework.boot.autoconfigure.ldap; import org.springframework.boot.autoconfigure.service.connection.ConnectionDetails; /** - * Details required to establish a connection to a Ldap service. + * Details required to establish a connection to an LDAP service. * * @author Philipp Kessler * @since 3.3.0 @@ -28,13 +28,13 @@ public interface LdapConnectionDetails extends ConnectionDetails { /** * LDAP URLs of the server. - * @return list of the LDAP urls to use + * @return the LDAP URLs to use */ String[] getUrls(); /** * Base suffix from which all operations should originate. - * @return base suffix from which all operations should originate or null. + * @return base suffix */ default String getBase() { return null; @@ -42,7 +42,7 @@ public interface LdapConnectionDetails extends ConnectionDetails { /** * Login username of the server. - * @return login username of the server or null. + * @return login username */ default String getUsername() { return null; @@ -50,7 +50,7 @@ public interface LdapConnectionDetails extends ConnectionDetails { /** * Login password of the server. - * @return login password of the server or null. + * @return login password */ default String getPassword() { return null; diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/ldap/LdapAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/ldap/LdapAutoConfigurationTests.java index b4b9f8154a..2d51f84a9b 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/ldap/LdapAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/ldap/LdapAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -119,7 +119,7 @@ class LdapAutoConfigurationTests { } @Test - void shouldUseCustomConnectionDetailsWhenDefined() { + void usesCustomConnectionDetailsWhenDefined() { this.contextRunner.withUserConfiguration(ConnectionDetailsConfiguration.class).run((context) -> { assertThat(context).hasSingleBean(LdapContextSource.class) .hasSingleBean(LdapConnectionDetails.class) diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/LdapDockerComposeConnectionDetailsFactory.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/OpenLdapDockerComposeConnectionDetailsFactory.java similarity index 80% rename from spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/LdapDockerComposeConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/OpenLdapDockerComposeConnectionDetailsFactory.java index 59850f2228..b5674f152f 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/LdapDockerComposeConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/OpenLdapDockerComposeConnectionDetailsFactory.java @@ -31,21 +31,22 @@ import org.springframework.boot.docker.compose.service.connection.DockerComposeC * * @author Philipp Kessler */ -class LdapDockerComposeConnectionDetailsFactory extends DockerComposeConnectionDetailsFactory { +class OpenLdapDockerComposeConnectionDetailsFactory + extends DockerComposeConnectionDetailsFactory { - protected LdapDockerComposeConnectionDetailsFactory() { + protected OpenLdapDockerComposeConnectionDetailsFactory() { super("osixia/openldap"); } @Override protected LdapConnectionDetails getDockerComposeConnectionDetails(DockerComposeConnectionSource source) { - return new LdapDockerComposeConnectionDetails(source.getRunningService()); + return new OpenLdapDockerComposeConnectionDetails(source.getRunningService()); } /** * {@link LdapConnectionDetails} backed by an {@code openldap} {@link RunningService}. */ - static class LdapDockerComposeConnectionDetails extends DockerComposeConnectionDetails + static class OpenLdapDockerComposeConnectionDetails extends DockerComposeConnectionDetails implements LdapConnectionDetails { private final String[] urls; @@ -56,20 +57,21 @@ class LdapDockerComposeConnectionDetailsFactory extends DockerComposeConnectionD private final String password; - LdapDockerComposeConnectionDetails(RunningService service) { + OpenLdapDockerComposeConnectionDetails(RunningService service) { 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"); this.urls = new String[] { "%s://%s:%d".formatted(usesTls ? "ldaps" : "ldap", service.host(), service.ports().get(Integer.parseInt(ldapPort))) }; - String baseDn = env.getOrDefault("LDAP_BASE_DN", null); - if (baseDn == null) { - baseDn = Arrays.stream(env.getOrDefault("LDAP_DOMAIN", "example.org").split("\\.")) + if (env.containsKey("LDAP_BASE_DN")) { + this.base = env.get("LDAP_BASE_DN"); + } + else { + this.base = Arrays.stream(env.getOrDefault("LDAP_DOMAIN", "example.org").split("\\.")) .map("dc=%s"::formatted) .collect(Collectors.joining(",")); } - this.base = baseDn; this.password = env.getOrDefault("LDAP_ADMIN_PASSWORD", "admin"); this.username = "cn=admin,%s".formatted(this.base); } diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/package-info.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/package-info.java index 1953e3f3b9..489148d277 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/package-info.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/ldap/package-info.java @@ -15,6 +15,6 @@ */ /** - * Auto-configuration for docker compose Ldap service connections. + * Auto-configuration for Docker Compose LDAP service connections. */ package org.springframework.boot.docker.compose.service.connection.ldap; diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-docker-compose/src/main/resources/META-INF/spring.factories index 71a9417c44..3ffd311e36 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-docker-compose/src/main/resources/META-INF/spring.factories @@ -9,7 +9,7 @@ org.springframework.boot.docker.compose.service.connection.activemq.ActiveMQDock org.springframework.boot.docker.compose.service.connection.cassandra.CassandraDockerComposeConnectionDetailsFactory,\ org.springframework.boot.docker.compose.service.connection.elasticsearch.ElasticsearchDockerComposeConnectionDetailsFactory,\ org.springframework.boot.docker.compose.service.connection.flyway.JdbcAdaptingFlywayConnectionDetailsFactory,\ -org.springframework.boot.docker.compose.service.connection.ldap.LdapDockerComposeConnectionDetailsFactory,\ +org.springframework.boot.docker.compose.service.connection.ldap.OpenLdapDockerComposeConnectionDetailsFactory,\ org.springframework.boot.docker.compose.service.connection.liquibase.JdbcAdaptingLiquibaseConnectionDetailsFactory,\ org.springframework.boot.docker.compose.service.connection.mariadb.MariaDbJdbcDockerComposeConnectionDetailsFactory,\ org.springframework.boot.docker.compose.service.connection.mariadb.MariaDbR2dbcDockerComposeConnectionDetailsFactory,\ diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/ldap/LdapDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/ldap/OpenLdapDockerComposeConnectionDetailsFactoryIntegrationTests.java similarity index 83% rename from spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/ldap/LdapDockerComposeConnectionDetailsFactoryIntegrationTests.java rename to spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/ldap/OpenLdapDockerComposeConnectionDetailsFactoryIntegrationTests.java index 150e3e11d2..57756fe012 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/ldap/LdapDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/ldap/OpenLdapDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -25,14 +25,14 @@ import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; /** - * Integration tests for {@link LdapDockerComposeConnectionDetailsFactory}. + * Integration tests for {@link OpenLdapDockerComposeConnectionDetailsFactory}. * * @author Philipp Kessler */ -class LdapDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { +class OpenLdapDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { - LdapDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("ldap-compose.yaml", DockerImageNames.ldap()); + OpenLdapDockerComposeConnectionDetailsFactoryIntegrationTests() { + super("ldap-compose.yaml", DockerImageNames.openLdap()); } @Test diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/features/docker-compose.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/features/docker-compose.adoc index 6ee9c0172a..6b8c5688e2 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/features/docker-compose.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/features/docker-compose.adoc @@ -81,6 +81,9 @@ The following service connections are currently supported: | `JdbcConnectionDetails` | Containers named "gvenzl/oracle-free", "gvenzl/oracle-xe", "mariadb", "mssql/server", "mysql", or "postgres" +| `LdapConnectionDetails` +| Containers named "osixia/openldap" + | `MongoConnectionDetails` | Containers named "mongo" diff --git a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ldap/LdapContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ldap/OpenLdapContainerConnectionDetailsFactory.java similarity index 78% rename from spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ldap/LdapContainerConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ldap/OpenLdapContainerConnectionDetailsFactory.java index a708347bdf..fd752811cd 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ldap/LdapContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/ldap/OpenLdapContainerConnectionDetailsFactory.java @@ -35,22 +35,22 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnect * * @author Philipp Kessler */ -class LdapContainerConnectionDetailsFactory +class OpenLdapContainerConnectionDetailsFactory extends ContainerConnectionDetailsFactory, LdapConnectionDetails> { - LdapContainerConnectionDetailsFactory() { + OpenLdapContainerConnectionDetailsFactory() { super("osixia/openldap"); } @Override protected LdapConnectionDetails getContainerConnectionDetails(ContainerConnectionSource> source) { - return new LdapContainerConnectionDetailsFactory.LdapContainerConnectionDetails(source); + return new OpenLdapContainerConnectionDetails(source); } - private static final class LdapContainerConnectionDetails extends ContainerConnectionDetails> + private static final class OpenLdapContainerConnectionDetails extends ContainerConnectionDetails> implements LdapConnectionDetails { - private LdapContainerConnectionDetails(ContainerConnectionSource> source) { + private OpenLdapContainerConnectionDetails(ContainerConnectionSource> source) { super(source); } @@ -65,14 +65,13 @@ class LdapContainerConnectionDetailsFactory @Override public String getBase() { - String baseDn = getContainer().getEnvMap().getOrDefault("LDAP_BASE_DN", null); - if (baseDn == null) { - baseDn = Arrays - .stream(getContainer().getEnvMap().getOrDefault("LDAP_DOMAIN", "example.org").split("\\.")) - .map("dc=%s"::formatted) - .collect(Collectors.joining(",")); + Map env = getContainer().getEnvMap(); + if (env.containsKey("LDAP_BASE_DN")) { + return env.get("LDAP_BASE_DN"); } - return baseDn; + return Arrays.stream(env.getOrDefault("LDAP_DOMAIN", "example.org").split("\\.")) + .map("dc=%s"::formatted) + .collect(Collectors.joining(",")); } @Override diff --git a/spring-boot-project/spring-boot-testcontainers/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-testcontainers/src/main/resources/META-INF/spring.factories index a8851d15b9..5b8bda347f 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-testcontainers/src/main/resources/META-INF/spring.factories @@ -16,7 +16,7 @@ org.springframework.boot.testcontainers.service.connection.flyway.FlywayContaine org.springframework.boot.testcontainers.service.connection.elasticsearch.ElasticsearchContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.jdbc.JdbcContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.kafka.KafkaContainerConnectionDetailsFactory,\ -org.springframework.boot.testcontainers.service.connection.ldap.LdapContainerConnectionDetailsFactory,\ +org.springframework.boot.testcontainers.service.connection.ldap.OpenLdapContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.liquibase.LiquibaseContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.mongo.MongoContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.neo4j.Neo4jContainerConnectionDetailsFactory,\ diff --git a/spring-boot-project/spring-boot-testcontainers/src/test/java/org/springframework/boot/testcontainers/service/connection/ldap/LdapContainerConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-testcontainers/src/test/java/org/springframework/boot/testcontainers/service/connection/ldap/OpenLdapContainerConnectionDetailsFactoryIntegrationTests.java similarity index 78% rename from spring-boot-project/spring-boot-testcontainers/src/test/java/org/springframework/boot/testcontainers/service/connection/ldap/LdapContainerConnectionDetailsFactoryIntegrationTests.java rename to spring-boot-project/spring-boot-testcontainers/src/test/java/org/springframework/boot/testcontainers/service/connection/ldap/OpenLdapContainerConnectionDetailsFactoryIntegrationTests.java index f44c47afff..4bae83e11b 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/test/java/org/springframework/boot/testcontainers/service/connection/ldap/LdapContainerConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-testcontainers/src/test/java/org/springframework/boot/testcontainers/service/connection/ldap/OpenLdapContainerConnectionDetailsFactoryIntegrationTests.java @@ -18,9 +18,6 @@ package org.springframework.boot.testcontainers.service.connection.ldap; import java.util.List; -import javax.naming.NamingException; -import javax.naming.directory.Attributes; - import org.junit.jupiter.api.Test; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -29,7 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.ldap.LdapAutoConfiguration; import org.springframework.boot.testcontainers.service.connection.ServiceConnection; -import org.springframework.boot.testsupport.testcontainers.LdapContainer; +import org.springframework.boot.testsupport.testcontainers.OpenLdapContainer; import org.springframework.context.annotation.Configuration; import org.springframework.ldap.core.AttributesMapper; import org.springframework.ldap.core.LdapTemplate; @@ -39,17 +36,17 @@ import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; import static org.assertj.core.api.Assertions.assertThat; /** - * Tests for {@link LdapContainerConnectionDetailsFactory}. + * Tests for {@link OpenLdapContainerConnectionDetailsFactory}. * * @author Philipp Kessler */ @SpringJUnitConfig @Testcontainers(disabledWithoutDocker = true) -class LdapContainerConnectionDetailsFactoryIntegrationTests { +class OpenLdapContainerConnectionDetailsFactoryIntegrationTests { @Container @ServiceConnection - static final LdapContainer openLdap = new LdapContainer().withEnv("LDAP_TLS", "false"); + static final OpenLdapContainer openLdap = new OpenLdapContainer().withEnv("LDAP_TLS", "false"); @Autowired private LdapTemplate ldapTemplate; @@ -57,12 +54,7 @@ class LdapContainerConnectionDetailsFactoryIntegrationTests { @Test void connectionCanBeMadeToLdapContainer() { List cn = this.ldapTemplate.search(LdapQueryBuilder.query().where("objectclass").is("dcObject"), - new AttributesMapper() { - @Override - public String mapFromAttributes(Attributes attributes) throws NamingException { - return attributes.get("dc").get().toString(); - } - }); + (AttributesMapper) (attributes) -> attributes.get("dc").get().toString()); assertThat(cn).hasSize(1); assertThat(cn.get(0)).isEqualTo("example"); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/DockerImageNames.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/DockerImageNames.java index 19ee2b3d6e..81a5673d8f 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/DockerImageNames.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/DockerImageNames.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,8 +40,6 @@ public final class DockerImageNames { private static final String KAFKA_VERSION = "7.4.0"; - private static final String LDAP_VERSION = "1.5.0"; - private static final String MARIADB_VERSION = "10.10"; private static final String MONGO_VERSION = "5.0.17"; @@ -50,6 +48,8 @@ public final class DockerImageNames { private static final String NEO4J_VERSION = "4.4.11"; + private static final String OPEN_LDAP_VERSION = "1.5.0"; + private static final String ORACLE_FREE_VERSION = "23.3-slim"; private static final String ORACLE_XE_VERSION = "18.4.0-slim"; @@ -122,11 +122,11 @@ public final class DockerImageNames { } /** - * Return a {@link DockerImageName} suitable for running OpenLdap. - * @return a docker image name for running OpenLdap + * Return a {@link DockerImageName} suitable for running OpenLDAP. + * @return a docker image name for running OpenLDAP */ - public static DockerImageName ldap() { - return DockerImageName.parse("osixia/openldap").withTag(LDAP_VERSION); + public static DockerImageName openLdap() { + return DockerImageName.parse("osixia/openldap").withTag(OPEN_LDAP_VERSION); } /** diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/LdapContainer.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/OpenLdapContainer.java similarity index 82% rename from spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/LdapContainer.java rename to spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/OpenLdapContainer.java index 3405e138ed..93ac6e8abf 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/LdapContainer.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/OpenLdapContainer.java @@ -19,16 +19,16 @@ package org.springframework.boot.testsupport.testcontainers; import org.testcontainers.containers.GenericContainer; /** - * A {@link GenericContainer} for OpenLdap. + * A {@link GenericContainer} for OpenLDAP. * * @author Philipp Kessler */ -public class LdapContainer extends GenericContainer { +public class OpenLdapContainer extends GenericContainer { private static final int DEFAULT_LDAP_PORT = 389; - public LdapContainer() { - super(DockerImageNames.ldap()); + public OpenLdapContainer() { + super(DockerImageNames.openLdap()); addExposedPorts(DEFAULT_LDAP_PORT); }