Skip to content

Commit a0000fd

Browse files
Add support for Postgres trust auth method at docker compose
1 parent d2cd5c9 commit a0000fd

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.docker.compose.service.connection.postgres;
1818

1919
import java.util.Map;
20+
import java.util.Objects;
2021

2122
import org.springframework.util.Assert;
2223
import org.springframework.util.StringUtils;
@@ -28,6 +29,7 @@
2829
* @author Andy Wilkinson
2930
* @author Phillip Webb
3031
* @author Scott Frederick
32+
* @author Sidmar Theodoro
3133
*/
3234
class PostgresEnvironment {
3335

@@ -44,11 +46,19 @@ class PostgresEnvironment {
4446
}
4547

4648
private String extractPassword(Map<String, String> env) {
49+
if (hasTrustAuthMethod(env)) {
50+
return null;
51+
}
4752
String password = env.getOrDefault("POSTGRES_PASSWORD", env.get("POSTGRESQL_PASSWORD"));
4853
Assert.state(StringUtils.hasLength(password), "PostgreSQL password must be provided");
4954
return password;
5055
}
5156

57+
private Boolean hasTrustAuthMethod(Map<String, String> env) {
58+
String postgresAuthMethod = env.getOrDefault("POSTGRES_HOST_AUTH_METHOD", "password");
59+
return Objects.equals(postgresAuthMethod, "trust");
60+
}
61+
5262
String getUsername() {
5363
return this.username;
5464
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ void getPasswordWhenHasPostgresqlPassword() {
7878
assertThat(environment.getPassword()).isEqualTo("secret");
7979
}
8080

81+
@Test
82+
void getPasswordWhenHasTrustAuthMethod() {
83+
PostgresEnvironment environment = new PostgresEnvironment(Map.of("POSTGRES_HOST_AUTH_METHOD", "trust"));
84+
assertThat(environment.getPassword()).isNull();
85+
}
86+
8187
@Test
8288
void getDatabaseWhenNoPostgresDbOrPostgresUser() {
8389
PostgresEnvironment environment = new PostgresEnvironment(Map.of("POSTGRES_PASSWORD", "secret"));

0 commit comments

Comments
 (0)