diff --git a/pom.xml b/pom.xml
index e6d868411f..86b3181b77 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-redis
- 1.8.0.BUILD-SNAPSHOT
+ 1.8.0.DATAREDIS-537-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 1e8e305816..5d606d8a14 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
@@ -565,6 +565,10 @@ private AbstractRedisClient createRedisClient() {
RedisURI redisURI = new RedisURI(node.getHost(), node.getPort(), timeout, TimeUnit.MILLISECONDS);
+ redisURI.setSsl(useSsl);
+ redisURI.setVerifyPeer(verifyPeer);
+ redisURI.setStartTls(startTls);
+
if (StringUtils.hasText(password)) {
redisURI.setPassword(password);
}
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 da2e5e4e42..f89c28a305 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
@@ -28,6 +28,7 @@
import org.junit.Before;
import org.junit.Test;
import org.springframework.data.redis.ConnectionFactoryTracker;
+import org.springframework.data.redis.connection.ClusterTestVariables;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisSentinelConfiguration;
@@ -243,4 +244,69 @@ public void startTLSOptionShouldBeSetCorrectlyOnClient() {
assertThat(connectionFactory.isStartTls(), is(true));
}
+ /**
+ * @see DATAREDIS-537
+ */
+ @Test
+ public void sslShouldBeSetCorrectlyOnClusterClient() {
+
+ LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(new RedisClusterConfiguration().clusterNode(ClusterTestVariables.CLUSTER_NODE_1));
+ connectionFactory.setClientResources(LettuceTestClientResources.getSharedClientResources());
+ connectionFactory.setUseSsl(true);
+ connectionFactory.afterPropertiesSet();
+ ConnectionFactoryTracker.add(connectionFactory);
+
+ AbstractRedisClient client = (AbstractRedisClient) getField(connectionFactory, "client");
+ assertThat(client, instanceOf(RedisClusterClient.class));
+
+ Iterable initialUris = (Iterable) getField(client, "initialUris");
+
+ for (RedisURI uri : initialUris) {
+ assertThat(uri.isSsl(), is(true));
+ }
+ }
+
+ /**
+ * @see DATAREDIS-537
+ */
+ @Test
+ public void startTLSOptionShouldBeSetCorrectlyOnClusterClient() {
+
+ LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(new RedisClusterConfiguration().clusterNode(ClusterTestVariables.CLUSTER_NODE_1));
+ connectionFactory.setClientResources(LettuceTestClientResources.getSharedClientResources());
+ connectionFactory.setStartTls(true);
+ connectionFactory.afterPropertiesSet();
+ ConnectionFactoryTracker.add(connectionFactory);
+
+ AbstractRedisClient client = (AbstractRedisClient) getField(connectionFactory, "client");
+ assertThat(client, instanceOf(RedisClusterClient.class));
+
+ Iterable initialUris = (Iterable) getField(client, "initialUris");
+
+ for (RedisURI uri : initialUris) {
+ assertThat(uri.isStartTls(), is(true));
+ }
+ }
+
+ /**
+ * @see DATAREDIS-537
+ */
+ @Test
+ public void verifyPeerTLSOptionShouldBeSetCorrectlyOnClusterClient() {
+
+ LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(new RedisClusterConfiguration().clusterNode(ClusterTestVariables.CLUSTER_NODE_1));
+ connectionFactory.setClientResources(LettuceTestClientResources.getSharedClientResources());
+ connectionFactory.setVerifyPeer(true);
+ connectionFactory.afterPropertiesSet();
+ ConnectionFactoryTracker.add(connectionFactory);
+
+ AbstractRedisClient client = (AbstractRedisClient) getField(connectionFactory, "client");
+ assertThat(client, instanceOf(RedisClusterClient.class));
+
+ Iterable initialUris = (Iterable) getField(client, "initialUris");
+
+ for (RedisURI uri : initialUris) {
+ assertThat(uri.isVerifyPeer(), is(true));
+ }
+ }
}