diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java index a2f6e88666..47e350b62f 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java @@ -79,6 +79,9 @@ abstract class RedisConnectionConfiguration { RedisSentinelConfiguration config = new RedisSentinelConfiguration(); config.master(sentinelProperties.getMaster()); config.setSentinels(createSentinels(sentinelProperties)); + if (this.properties.getPassword() != null) { + config.setPassword(RedisPassword.of(this.properties.getPassword())); + } return config; } return null; @@ -101,6 +104,9 @@ abstract class RedisConnectionConfiguration { if (clusterProperties.getMaxRedirects() != null) { config.setMaxRedirects(clusterProperties.getMaxRedirects()); } + if (this.properties.getPassword() != null) { + config.setPassword(RedisPassword.of(this.properties.getPassword())); + } return config; } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationJedisTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationJedisTests.java index 2c07082246..ec6e8c4be5 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationJedisTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationJedisTests.java @@ -125,6 +125,16 @@ public class RedisAutoConfigurationJedisTests { .isRedisSentinelAware()).isTrue(); } + @Test + public void testRedisConfigurationWithSentinelAndPassword() { + List sentinels = Arrays.asList("127.0.0.1:26379", "127.0.0.1:26380"); + load("spring.redis.password=password", "spring.redis.sentinel.master:mymaster", + "spring.redis.sentinel.nodes:" + StringUtils + .collectionToCommaDelimitedString(sentinels)); + assertThat(this.context.getBean(JedisConnectionFactory.class) + .getPassword()).isEqualTo("password"); + } + @Test public void testRedisConfigurationWithCluster() throws Exception { List clusterNodes = Arrays.asList("127.0.0.1:27379", "127.0.0.1:27380"); diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationTests.java index 9c2b04e397..b3fea6c6ff 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationTests.java @@ -148,6 +148,16 @@ public class RedisAutoConfigurationTests { .isRedisSentinelAware()).isTrue(); } + @Test + public void testRedisConfigurationWithSentinelAndPassword() throws Exception { + List sentinels = Arrays.asList("127.0.0.1:26379", "127.0.0.1:26380"); + load("spring.redis.password=password", "spring.redis.sentinel.master:mymaster", + "spring.redis.sentinel.nodes:" + + StringUtils.collectionToCommaDelimitedString(sentinels)); + assertThat(this.context.getBean(LettuceConnectionFactory.class) + .getPassword()).isEqualTo("password"); + } + @Test public void testRedisConfigurationWithCluster() throws Exception { List clusterNodes = Arrays.asList("127.0.0.1:27379", "127.0.0.1:27380"); @@ -157,6 +167,16 @@ public class RedisAutoConfigurationTests { .getClusterConnection()).isNotNull(); } + @Test + public void testRedisConfigurationWithClusterAndPassword() throws Exception { + List clusterNodes = Arrays.asList("127.0.0.1:27379", "127.0.0.1:27380"); + load("spring.redis.password=password", + "spring.redis.cluster.nodes[0]:" + clusterNodes.get(0), + "spring.redis.cluster.nodes[1]:" + clusterNodes.get(1)); + assertThat(this.context.getBean(LettuceConnectionFactory.class) + .getPassword()).isEqualTo("password"); + } + private DefaultLettucePool getDefaultLettucePool(LettuceConnectionFactory factory) { return (DefaultLettucePool) ReflectionTestUtils.getField(factory, "pool"); }