diff --git a/module/spring-boot-amqp/src/main/java/org/springframework/boot/amqp/docker/compose/RabbitEnvironment.java b/module/spring-boot-amqp/src/main/java/org/springframework/boot/amqp/docker/compose/RabbitEnvironment.java index bc776b015db..0fa34bc1524 100644 --- a/module/spring-boot-amqp/src/main/java/org/springframework/boot/amqp/docker/compose/RabbitEnvironment.java +++ b/module/spring-boot-amqp/src/main/java/org/springframework/boot/amqp/docker/compose/RabbitEnvironment.java @@ -35,8 +35,14 @@ class RabbitEnvironment { private final @Nullable String password; RabbitEnvironment(Map env) { - this.username = env.getOrDefault("RABBITMQ_DEFAULT_USER", env.getOrDefault("RABBITMQ_USERNAME", "guest")); - this.password = env.getOrDefault("RABBITMQ_DEFAULT_PASS", env.getOrDefault("RABBITMQ_PASSWORD", "guest")); + this.username = extract(env, "RABBITMQ_DEFAULT_USER", "RABBITMQ_USERNAME"); + this.password = extract(env, "RABBITMQ_DEFAULT_PASS", "RABBITMQ_PASSWORD"); + } + + private static String extract(Map env, String key, String fallbackKey) { + String value = env.get(key); + value = (value != null) ? value : env.get(fallbackKey); + return (value != null) ? value : "guest"; } @Nullable String getUsername() { diff --git a/module/spring-boot-amqp/src/test/java/org/springframework/boot/amqp/docker/compose/RabbitEnvironmentTests.java b/module/spring-boot-amqp/src/test/java/org/springframework/boot/amqp/docker/compose/RabbitEnvironmentTests.java index 1ecb0b4d6ff..734e5cc4ae0 100644 --- a/module/spring-boot-amqp/src/test/java/org/springframework/boot/amqp/docker/compose/RabbitEnvironmentTests.java +++ b/module/spring-boot-amqp/src/test/java/org/springframework/boot/amqp/docker/compose/RabbitEnvironmentTests.java @@ -17,8 +17,10 @@ package org.springframework.boot.amqp.docker.compose; import java.util.Collections; +import java.util.HashMap; import java.util.Map; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -69,4 +71,29 @@ class RabbitEnvironmentTests { assertThat(environment.getPassword()).isEqualTo("secret"); } + @Test + void getUsernameWhenRabbitmqDefaultUserHasNoValue() { + Map env = new HashMap<>(); + env.put("RABBITMQ_DEFAULT_USER", null); + RabbitEnvironment environment = new RabbitEnvironment(env); + assertThat(environment.getUsername()).isEqualTo("guest"); + } + + @Test + void getPasswordWhenRabbitmqDefaultPassHasNoValue() { + Map env = new HashMap<>(); + env.put("RABBITMQ_DEFAULT_PASS", null); + RabbitEnvironment environment = new RabbitEnvironment(env); + assertThat(environment.getPassword()).isEqualTo("guest"); + } + + @Test + void getUsernameWhenRabbitmqDefaultUserHasNoValueAndHasRabbitmqUsername() { + Map env = new HashMap<>(); + env.put("RABBITMQ_DEFAULT_USER", null); + env.put("RABBITMQ_USERNAME", "me"); + RabbitEnvironment environment = new RabbitEnvironment(env); + assertThat(environment.getUsername()).isEqualTo("me"); + } + }