Polish "Add support for empty password in bitnami/postgresql"
See gh-43771
This commit is contained in:
@@ -61,16 +61,6 @@ class PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests {
|
||||
checkDatabaseAccess(connectionDetails);
|
||||
}
|
||||
|
||||
@DockerComposeTest(composeFile = "postgres-bitnami-empty-password-compose.yaml",
|
||||
image = TestImage.BITNAMI_POSTGRESQL)
|
||||
void runWithBitnamiImageCreatesConnectionDetailsWithAllowEmptyPassword(JdbcConnectionDetails connectionDetails)
|
||||
throws ClassNotFoundException {
|
||||
assertThat(connectionDetails.getUsername()).isEqualTo("myuser");
|
||||
assertThat(connectionDetails.getPassword()).isEmpty();
|
||||
assertThat(connectionDetails.getJdbcUrl()).startsWith("jdbc:postgresql://").endsWith("/mydatabase");
|
||||
checkDatabaseAccess(connectionDetails);
|
||||
}
|
||||
|
||||
@DockerComposeTest(composeFile = "postgres-application-name-compose.yaml", image = TestImage.POSTGRESQL)
|
||||
void runCreatesConnectionDetailsApplicationName(JdbcConnectionDetails connectionDetails)
|
||||
throws ClassNotFoundException {
|
||||
|
||||
@@ -64,17 +64,6 @@ class PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests {
|
||||
checkDatabaseAccess(connectionDetails);
|
||||
}
|
||||
|
||||
@DockerComposeTest(composeFile = "postgres-bitnami-empty-password-compose.yaml",
|
||||
image = TestImage.BITNAMI_POSTGRESQL)
|
||||
void runWithBitnamiImageCreatesConnectionDetailsWithAllowEmptyPassword(R2dbcConnectionDetails connectionDetails) {
|
||||
ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions();
|
||||
assertThat(connectionFactoryOptions.getRequiredValue(ConnectionFactoryOptions.USER)).isEqualTo("myuser");
|
||||
assertThat(connectionFactoryOptions.getValue(ConnectionFactoryOptions.PASSWORD)).isNull();
|
||||
assertThat(connectionFactoryOptions.getRequiredValue(ConnectionFactoryOptions.DATABASE))
|
||||
.isEqualTo("mydatabase");
|
||||
checkDatabaseAccess(connectionDetails);
|
||||
}
|
||||
|
||||
@DockerComposeTest(composeFile = "postgres-application-name-compose.yaml", image = TestImage.POSTGRESQL)
|
||||
void runCreatesConnectionDetailsApplicationName(R2dbcConnectionDetails connectionDetails) {
|
||||
assertConnectionDetails(connectionDetails);
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
services:
|
||||
database:
|
||||
image: '{imageName}'
|
||||
ports:
|
||||
- '5432'
|
||||
environment:
|
||||
- 'POSTGRESQL_USERNAME=myuser'
|
||||
- 'POSTGRESQL_DATABASE=mydatabase'
|
||||
- 'ALLOW_EMPTY_PASSWORD=yes'
|
||||
@@ -17,7 +17,6 @@
|
||||
package org.springframework.boot.docker.compose.service.connection.postgres;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -69,8 +68,8 @@ class PostgresEnvironment {
|
||||
}
|
||||
String password = env.getOrDefault("POSTGRES_PASSWORD", env.get("POSTGRESQL_PASSWORD"));
|
||||
boolean allowEmpty = env.containsKey("ALLOW_EMPTY_PASSWORD");
|
||||
Assert.state(allowEmpty || StringUtils.hasLength(password), "PostgreSQL password must be provided");
|
||||
return Objects.requireNonNullElse(password, "");
|
||||
Assert.state(allowEmpty || StringUtils.hasLength(password), "No PostgreSQL password found");
|
||||
return (password != null) ? password : "";
|
||||
}
|
||||
|
||||
private boolean isUsingTrustHostAuthMethod(Map<String, String> env) {
|
||||
|
||||
@@ -39,7 +39,7 @@ class PostgresEnvironmentTests {
|
||||
@Test
|
||||
void createWhenNoPostgresPasswordThrowsException() {
|
||||
assertThatIllegalStateException().isThrownBy(() -> new PostgresEnvironment(Collections.emptyMap()))
|
||||
.withMessage("PostgreSQL password must be provided");
|
||||
.withMessage("No PostgreSQL password found");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user