From 2110432245ec25996ecc961e5b79246dff039660 Mon Sep 17 00:00:00 2001 From: itsmevichu Date: Fri, 13 Feb 2026 08:56:38 +0530 Subject: [PATCH 1/3] Fix gh-49205 Signed-off-by: itsmevichu --- ...ssandraDockerComposeConnectionDetailsFactory.java | 11 +++++++++++ ...csearchDockerComposeConnectionDetailsFactory.java | 12 +++++++++++- .../MongoDockerComposeConnectionDetailsFactory.java | 11 +++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/module/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/docker/compose/CassandraDockerComposeConnectionDetailsFactory.java b/module/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/docker/compose/CassandraDockerComposeConnectionDetailsFactory.java index 0a35a2712e84..699403b62acf 100644 --- a/module/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/docker/compose/CassandraDockerComposeConnectionDetailsFactory.java +++ b/module/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/docker/compose/CassandraDockerComposeConnectionDetailsFactory.java @@ -18,10 +18,13 @@ import java.util.List; +import org.jspecify.annotations.Nullable; + import org.springframework.boot.cassandra.autoconfigure.CassandraConnectionDetails; import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; +import org.springframework.boot.ssl.SslBundle; /** * {@link DockerComposeConnectionDetailsFactory} to create @@ -54,11 +57,19 @@ static class CassandraDockerComposeConnectionDetails extends DockerComposeConnec private final String datacenter; + private final @Nullable SslBundle sslBundle; + CassandraDockerComposeConnectionDetails(RunningService service) { super(service); CassandraEnvironment cassandraEnvironment = new CassandraEnvironment(service.env()); this.contactPoints = List.of(new Node(service.host(), service.ports().get(CASSANDRA_PORT))); this.datacenter = cassandraEnvironment.getDatacenter(); + this.sslBundle = getSslBundle(service); + } + + @Override + public @Nullable SslBundle getSslBundle() { + return this.sslBundle; } @Override diff --git a/module/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/docker/compose/ElasticsearchDockerComposeConnectionDetailsFactory.java b/module/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/docker/compose/ElasticsearchDockerComposeConnectionDetailsFactory.java index a23e05698c88..428719d2d5ba 100644 --- a/module/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/docker/compose/ElasticsearchDockerComposeConnectionDetailsFactory.java +++ b/module/spring-boot-elasticsearch/src/main/java/org/springframework/boot/elasticsearch/docker/compose/ElasticsearchDockerComposeConnectionDetailsFactory.java @@ -25,6 +25,7 @@ import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchConnectionDetails; import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchConnectionDetails.Node.Protocol; +import org.springframework.boot.ssl.SslBundle; /** * {@link DockerComposeConnectionDetailsFactory} to create @@ -60,13 +61,22 @@ static class ElasticsearchDockerComposeConnectionDetails extends DockerComposeCo private final List nodes; + private final @Nullable SslBundle sslBundle; + ElasticsearchDockerComposeConnectionDetails(RunningService service) { super(service); this.environment = new ElasticsearchEnvironment(service.env()); - this.nodes = List.of(new Node(service.host(), service.ports().get(ELASTICSEARCH_PORT), Protocol.HTTP, + this.sslBundle = getSslBundle(service); + Protocol protocol = (this.sslBundle != null) ? Protocol.HTTPS : Protocol.HTTP; + this.nodes = List.of(new Node(service.host(), service.ports().get(ELASTICSEARCH_PORT), protocol, getUsername(), getPassword())); } + @Override + public @Nullable SslBundle getSslBundle() { + return this.sslBundle; + } + @Override public String getUsername() { return "elastic"; diff --git a/module/spring-boot-mongodb/src/main/java/org/springframework/boot/mongodb/docker/compose/MongoDockerComposeConnectionDetailsFactory.java b/module/spring-boot-mongodb/src/main/java/org/springframework/boot/mongodb/docker/compose/MongoDockerComposeConnectionDetailsFactory.java index a062e57519a5..dc28008c7ee5 100644 --- a/module/spring-boot-mongodb/src/main/java/org/springframework/boot/mongodb/docker/compose/MongoDockerComposeConnectionDetailsFactory.java +++ b/module/spring-boot-mongodb/src/main/java/org/springframework/boot/mongodb/docker/compose/MongoDockerComposeConnectionDetailsFactory.java @@ -16,12 +16,15 @@ package org.springframework.boot.mongodb.docker.compose; +import org.jspecify.annotations.Nullable; + import com.mongodb.ConnectionString; import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; import org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails; +import org.springframework.boot.ssl.SslBundle; /** * {@link DockerComposeConnectionDetailsFactory} to create {@link MongoConnectionDetails} @@ -54,8 +57,11 @@ static class MongoDockerComposeConnectionDetails extends DockerComposeConnection private final ConnectionString connectionString; + private final @Nullable SslBundle sslBundle; + MongoDockerComposeConnectionDetails(RunningService service) { super(service); + this.sslBundle = getSslBundle(service); this.connectionString = buildConnectionString(service); } @@ -80,6 +86,11 @@ private ConnectionString buildConnectionString(RunningService service) { return new ConnectionString(builder.toString()); } + @Override + public @Nullable SslBundle getSslBundle() { + return this.sslBundle; + } + @Override public ConnectionString getConnectionString() { return this.connectionString; From 2f723251142fccd673432b1012075b706269b868 Mon Sep 17 00:00:00 2001 From: itsmevichu Date: Fri, 13 Feb 2026 09:57:19 +0530 Subject: [PATCH 2/3] Fix checkstyle issue Signed-off-by: itsmevichu --- .../compose/MongoDockerComposeConnectionDetailsFactory.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/module/spring-boot-mongodb/src/main/java/org/springframework/boot/mongodb/docker/compose/MongoDockerComposeConnectionDetailsFactory.java b/module/spring-boot-mongodb/src/main/java/org/springframework/boot/mongodb/docker/compose/MongoDockerComposeConnectionDetailsFactory.java index dc28008c7ee5..407f45c89115 100644 --- a/module/spring-boot-mongodb/src/main/java/org/springframework/boot/mongodb/docker/compose/MongoDockerComposeConnectionDetailsFactory.java +++ b/module/spring-boot-mongodb/src/main/java/org/springframework/boot/mongodb/docker/compose/MongoDockerComposeConnectionDetailsFactory.java @@ -16,9 +16,8 @@ package org.springframework.boot.mongodb.docker.compose; -import org.jspecify.annotations.Nullable; - import com.mongodb.ConnectionString; +import org.jspecify.annotations.Nullable; import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; From a9ad523a2eb92a6f92c28ea0271a01aae43ca902 Mon Sep 17 00:00:00 2001 From: itsmevichu Date: Tue, 17 Feb 2026 23:07:41 +0530 Subject: [PATCH 3/3] Add getSslBundle implementation to RabbitDockerComposeConnectionDetails Signed-off-by: itsmevichu --- .../RabbitDockerComposeConnectionDetailsFactory.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/module/spring-boot-amqp/src/main/java/org/springframework/boot/amqp/docker/compose/RabbitDockerComposeConnectionDetailsFactory.java b/module/spring-boot-amqp/src/main/java/org/springframework/boot/amqp/docker/compose/RabbitDockerComposeConnectionDetailsFactory.java index a5564994cb76..daa79344ae75 100644 --- a/module/spring-boot-amqp/src/main/java/org/springframework/boot/amqp/docker/compose/RabbitDockerComposeConnectionDetailsFactory.java +++ b/module/spring-boot-amqp/src/main/java/org/springframework/boot/amqp/docker/compose/RabbitDockerComposeConnectionDetailsFactory.java @@ -25,6 +25,7 @@ import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; +import org.springframework.boot.ssl.SslBundle; /** * {@link DockerComposeConnectionDetailsFactory} to create @@ -63,9 +64,12 @@ static class RabbitDockerComposeConnectionDetails extends DockerComposeConnectio private final List
addresses; + private final @Nullable SslBundle sslBundle; + protected RabbitDockerComposeConnectionDetails(RunningService service) { super(service); this.environment = new RabbitEnvironment(service.env()); + this.sslBundle = getSslBundle(service); this.addresses = List.of(new Address(service.host(), service.ports().get(RABBITMQ_PORT))); } @@ -79,6 +83,11 @@ protected RabbitDockerComposeConnectionDetails(RunningService service) { return this.environment.getPassword(); } + @Override + public @Nullable SslBundle getSslBundle() { + return this.sslBundle; + } + @Override public String getVirtualHost() { return "/";