DATAREDIS-537 - Add support for Redis Cluster and SSL.

Support SSL, StartTLS and VerifyPeer flags.

Original Pull Request: #210
This commit is contained in:
Mark Paluch
2016-07-20 12:07:07 +02:00
committed by Christoph Strobl
parent 7a713aa2a9
commit c7c9a8aab5
2 changed files with 70 additions and 0 deletions

View File

@@ -28,6 +28,7 @@ import org.junit.After;
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 class LettuceConnectionFactoryUnitTests {
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<RedisURI> initialUris = (Iterable<RedisURI>) 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<RedisURI> initialUris = (Iterable<RedisURI>) 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<RedisURI> initialUris = (Iterable<RedisURI>) getField(client, "initialUris");
for (RedisURI uri : initialUris) {
assertThat(uri.isVerifyPeer(), is(true));
}
}
}