Skip to content

Commit b601282

Browse files
committed
Polish "Add support for empty password in bitnami/postgresql"
See gh-43771
1 parent 2f17818 commit b601282

File tree

5 files changed

+3
-34
lines changed

5 files changed

+3
-34
lines changed

spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java

-10
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,6 @@ void runWithBitnamiImageCreatesConnectionDetails(JdbcConnectionDetails connectio
6161
checkDatabaseAccess(connectionDetails);
6262
}
6363

64-
@DockerComposeTest(composeFile = "postgres-bitnami-empty-password-compose.yaml",
65-
image = TestImage.BITNAMI_POSTGRESQL)
66-
void runWithBitnamiImageCreatesConnectionDetailsWithAllowEmptyPassword(JdbcConnectionDetails connectionDetails)
67-
throws ClassNotFoundException {
68-
assertThat(connectionDetails.getUsername()).isEqualTo("myuser");
69-
assertThat(connectionDetails.getPassword()).isEmpty();
70-
assertThat(connectionDetails.getJdbcUrl()).startsWith("jdbc:postgresql://").endsWith("/mydatabase");
71-
checkDatabaseAccess(connectionDetails);
72-
}
73-
7464
@DockerComposeTest(composeFile = "postgres-application-name-compose.yaml", image = TestImage.POSTGRESQL)
7565
void runCreatesConnectionDetailsApplicationName(JdbcConnectionDetails connectionDetails)
7666
throws ClassNotFoundException {

spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java

-11
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,6 @@ void runWithBitnamiImageCreatesConnectionDetails(R2dbcConnectionDetails connecti
6464
checkDatabaseAccess(connectionDetails);
6565
}
6666

67-
@DockerComposeTest(composeFile = "postgres-bitnami-empty-password-compose.yaml",
68-
image = TestImage.BITNAMI_POSTGRESQL)
69-
void runWithBitnamiImageCreatesConnectionDetailsWithAllowEmptyPassword(R2dbcConnectionDetails connectionDetails) {
70-
ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions();
71-
assertThat(connectionFactoryOptions.getRequiredValue(ConnectionFactoryOptions.USER)).isEqualTo("myuser");
72-
assertThat(connectionFactoryOptions.getValue(ConnectionFactoryOptions.PASSWORD)).isNull();
73-
assertThat(connectionFactoryOptions.getRequiredValue(ConnectionFactoryOptions.DATABASE))
74-
.isEqualTo("mydatabase");
75-
checkDatabaseAccess(connectionDetails);
76-
}
77-
7867
@DockerComposeTest(composeFile = "postgres-application-name-compose.yaml", image = TestImage.POSTGRESQL)
7968
void runCreatesConnectionDetailsApplicationName(R2dbcConnectionDetails connectionDetails) {
8069
assertConnectionDetails(connectionDetails);

spring-boot-project/spring-boot-docker-compose/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/postgres/postgres-bitnami-empty-password-compose.yaml

-9
This file was deleted.

spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresEnvironment.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.springframework.boot.docker.compose.service.connection.postgres;
1818

1919
import java.util.Map;
20-
import java.util.Objects;
2120

2221
import org.springframework.util.Assert;
2322
import org.springframework.util.StringUtils;
@@ -69,8 +68,8 @@ private String extractPassword(Map<String, String> env) {
6968
}
7069
String password = env.getOrDefault("POSTGRES_PASSWORD", env.get("POSTGRESQL_PASSWORD"));
7170
boolean allowEmpty = env.containsKey("ALLOW_EMPTY_PASSWORD");
72-
Assert.state(allowEmpty || StringUtils.hasLength(password), "PostgreSQL password must be provided");
73-
return Objects.requireNonNullElse(password, "");
71+
Assert.state(allowEmpty || StringUtils.hasLength(password), "No PostgreSQL password found");
72+
return (password != null) ? password : "";
7473
}
7574

7675
private boolean isUsingTrustHostAuthMethod(Map<String, String> env) {

spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresEnvironmentTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class PostgresEnvironmentTests {
3939
@Test
4040
void createWhenNoPostgresPasswordThrowsException() {
4141
assertThatIllegalStateException().isThrownBy(() -> new PostgresEnvironment(Collections.emptyMap()))
42-
.withMessage("PostgreSQL password must be provided");
42+
.withMessage("No PostgreSQL password found");
4343
}
4444

4545
@Test

0 commit comments

Comments
 (0)