Merge pull request #51546 from yyuneu

Closes gh-51546

* gh-51546:
  Apply RabbitMQ credential fallbacks for null values
This commit is contained in:
Andy Wilkinson
2026-09-04 10:12:14 +01:00
2 changed files with 35 additions and 2 deletions
@@ -35,8 +35,14 @@ class RabbitEnvironment {
private final @Nullable String password;
RabbitEnvironment(Map<String, @Nullable String> 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<String, @Nullable String> 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() {
@@ -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<String, @Nullable String> env = new HashMap<>();
env.put("RABBITMQ_DEFAULT_USER", null);
RabbitEnvironment environment = new RabbitEnvironment(env);
assertThat(environment.getUsername()).isEqualTo("guest");
}
@Test
void getPasswordWhenRabbitmqDefaultPassHasNoValue() {
Map<String, @Nullable String> env = new HashMap<>();
env.put("RABBITMQ_DEFAULT_PASS", null);
RabbitEnvironment environment = new RabbitEnvironment(env);
assertThat(environment.getPassword()).isEqualTo("guest");
}
@Test
void getUsernameWhenRabbitmqDefaultUserHasNoValueAndHasRabbitmqUsername() {
Map<String, @Nullable String> env = new HashMap<>();
env.put("RABBITMQ_DEFAULT_USER", null);
env.put("RABBITMQ_USERNAME", "me");
RabbitEnvironment environment = new RabbitEnvironment(env);
assertThat(environment.getUsername()).isEqualTo("me");
}
}