diff --git a/pom.xml b/pom.xml
index 9d60cefa32..9fd2dadf35 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-redis
- 2.2.0.BUILD-SNAPSHOT
+ 2.2.0.DATAREDIS-990-SNAPSHOT
Spring Data Redis
diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java
index 44d70afe9e..74e24db755 100644
--- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java
+++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java
@@ -1031,6 +1031,10 @@ private RedisURI getSentinelRedisURI() {
getRedisPassword().toOptional().ifPresent(redisUri::setPassword);
clientConfiguration.getClientName().ifPresent(redisUri::setClientName);
+
+ redisUri.setSsl(clientConfiguration.isUseSsl());
+ redisUri.setVerifyPeer(clientConfiguration.isVerifyPeer());
+ redisUri.setStartTls(clientConfiguration.isStartTls());
redisUri.setTimeout(clientConfiguration.getCommandTimeout());
redisUri.setDatabase(getDatabase());
diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java
index 7b40ada1ab..8f73f39208 100644
--- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java
+++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactoryUnitTests.java
@@ -285,6 +285,68 @@ public void startTLSOptionShouldBeSetCorrectlyOnClient() {
assertThat(connectionFactory.isStartTls()).isTrue();
}
+ @Test // DATAREDIS-990
+ public void sslShouldBeSetCorrectlyOnSentinelClient() {
+
+ RedisSentinelConfiguration sentinelConfiguration = new RedisSentinelConfiguration("myMaster",
+ Collections.singleton("localhost:1234"));
+ LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(sentinelConfiguration);
+ connectionFactory.setClientResources(getSharedClientResources());
+ connectionFactory.setUseSsl(true);
+ connectionFactory.afterPropertiesSet();
+ ConnectionFactoryTracker.add(connectionFactory);
+
+ AbstractRedisClient client = (AbstractRedisClient) getField(connectionFactory, "client");
+ assertThat(client).isInstanceOf(RedisClient.class);
+
+ RedisURI redisUri = (RedisURI) getField(client, "redisURI");
+
+ assertThat(redisUri.isSsl()).isTrue();
+ assertThat(connectionFactory.isUseSsl()).isTrue();
+ assertThat(redisUri.isVerifyPeer()).isTrue();
+ assertThat(connectionFactory.isVerifyPeer()).isTrue();
+ }
+
+ @Test // DATAREDIS-990
+ public void verifyPeerOptionShouldBeSetCorrectlyOnSentinelClient() {
+
+ RedisSentinelConfiguration sentinelConfiguration = new RedisSentinelConfiguration("myMaster",
+ Collections.singleton("localhost:1234"));
+ LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(sentinelConfiguration);
+ connectionFactory.setClientResources(getSharedClientResources());
+ connectionFactory.setVerifyPeer(false);
+ connectionFactory.afterPropertiesSet();
+ ConnectionFactoryTracker.add(connectionFactory);
+
+ AbstractRedisClient client = (AbstractRedisClient) getField(connectionFactory, "client");
+ assertThat(client).isInstanceOf(RedisClient.class);
+
+ RedisURI redisUri = (RedisURI) getField(client, "redisURI");
+
+ assertThat(redisUri.isVerifyPeer()).isFalse();
+ assertThat(connectionFactory.isVerifyPeer()).isFalse();
+ }
+
+ @Test // DATAREDIS-990
+ public void startTLSOptionShouldBeSetCorrectlyOnSentinelClient() {
+
+ RedisSentinelConfiguration sentinelConfiguration = new RedisSentinelConfiguration("myMaster",
+ Collections.singleton("localhost:1234"));
+ LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(sentinelConfiguration);
+ connectionFactory.setClientResources(getSharedClientResources());
+ connectionFactory.setStartTls(true);
+ connectionFactory.afterPropertiesSet();
+ ConnectionFactoryTracker.add(connectionFactory);
+
+ AbstractRedisClient client = (AbstractRedisClient) getField(connectionFactory, "client");
+ assertThat(client).isInstanceOf(RedisClient.class);
+
+ RedisURI redisUri = (RedisURI) getField(client, "redisURI");
+
+ assertThat(redisUri.isStartTls()).isTrue();
+ assertThat(connectionFactory.isStartTls()).isTrue();
+ }
+
@Test // DATAREDIS-537
public void sslShouldBeSetCorrectlyOnClusterClient() {