diff --git a/src/main/java/redis/clients/jedis/JedisFactory.java b/src/main/java/redis/clients/jedis/JedisFactory.java index 12a32540c5..3333b33461 100644 --- a/src/main/java/redis/clients/jedis/JedisFactory.java +++ b/src/main/java/redis/clients/jedis/JedisFactory.java @@ -35,6 +35,11 @@ class JedisFactory implements PooledObjectFactory { this(host, port, connectionTimeout, soTimeout, password, database, clientName, false, null, null, null); } + JedisFactory(final String host, final int port, final int connectionTimeout, + final int soTimeout, final String password, final int database, final String clientName, final boolean isRedisSslEnabled) { + this(host, port, connectionTimeout, soTimeout, password, database, clientName, + isRedisSslEnabled, null, null, null); + } JedisFactory(final String host, final int port, final int connectionTimeout, final int soTimeout, final String password, final int database, final String clientName, diff --git a/src/main/java/redis/clients/jedis/JedisSentinelPool.java b/src/main/java/redis/clients/jedis/JedisSentinelPool.java index c6fb037dbb..2d03ca49e1 100644 --- a/src/main/java/redis/clients/jedis/JedisSentinelPool.java +++ b/src/main/java/redis/clients/jedis/JedisSentinelPool.java @@ -13,13 +13,20 @@ import redis.clients.jedis.exceptions.JedisConnectionException; import redis.clients.jedis.exceptions.JedisException; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLParameters; +import javax.net.ssl.SSLSocketFactory; + public class JedisSentinelPool extends JedisPoolAbstract { protected GenericObjectPoolConfig poolConfig; protected int connectionTimeout = Protocol.DEFAULT_TIMEOUT; protected int soTimeout = Protocol.DEFAULT_TIMEOUT; - + protected Boolean isRedisSslEnabled; + protected SSLSocketFactory sslSocketFactory; + protected SSLParameters sslParameters; + protected HostnameVerifier hostnameVerifier; protected String password; protected int database = Protocol.DEFAULT_DATABASE; @@ -41,10 +48,24 @@ public JedisSentinelPool(String masterName, Set sentinels, Protocol.DEFAULT_DATABASE); } + public JedisSentinelPool(String masterName, Set sentinels, + final GenericObjectPoolConfig poolConfig, final Boolean isRedisSslEnabled) { + this(masterName, sentinels, poolConfig, Protocol.DEFAULT_TIMEOUT, null, + Protocol.DEFAULT_DATABASE, isRedisSslEnabled); + } + public JedisSentinelPool(String masterName, Set sentinels) { this(masterName, sentinels, new GenericObjectPoolConfig(), Protocol.DEFAULT_TIMEOUT, null, Protocol.DEFAULT_DATABASE); } + public JedisSentinelPool(String masterName, Set sentinels, final Boolean isRedisSslEnabled) { + this(masterName, sentinels, new GenericObjectPoolConfig(), Protocol.DEFAULT_TIMEOUT, null, + Protocol.DEFAULT_DATABASE, isRedisSslEnabled); + } + + public JedisSentinelPool(String masterName, Set sentinels, String password, final Boolean isRedisSslEnabled) { + this(masterName, sentinels, new GenericObjectPoolConfig(), Protocol.DEFAULT_TIMEOUT, password); + } public JedisSentinelPool(String masterName, Set sentinels, String password) { this(masterName, sentinels, new GenericObjectPoolConfig(), Protocol.DEFAULT_TIMEOUT, password); @@ -68,30 +89,57 @@ public JedisSentinelPool(String masterName, Set sentinels, public JedisSentinelPool(String masterName, Set sentinels, final GenericObjectPoolConfig poolConfig, int timeout, final String password, final int database) { - this(masterName, sentinels, poolConfig, timeout, timeout, password, database); + this(masterName, sentinels, poolConfig, timeout, timeout, password, database, false); + } + + public JedisSentinelPool(String masterName, Set sentinels, + final GenericObjectPoolConfig poolConfig, int timeout, final String password, + final int database, final Boolean isRedisSslEnabled) { + this(masterName, sentinels, poolConfig, timeout, timeout, password, database, isRedisSslEnabled); } public JedisSentinelPool(String masterName, Set sentinels, final GenericObjectPoolConfig poolConfig, int timeout, final String password, final int database, final String clientName) { - this(masterName, sentinels, poolConfig, timeout, timeout, password, database, clientName); + this(masterName, sentinels, poolConfig, timeout, timeout, password, database, clientName, false, + null, null, null); + } + + public JedisSentinelPool(String masterName, Set sentinels, + final GenericObjectPoolConfig poolConfig, int timeout, final String password, + final int database, final String clientName, final Boolean isRedisSslEnabled) { + this(masterName, sentinels, poolConfig, timeout, timeout, password, database, clientName, isRedisSslEnabled, + null, null, null); + } + + public JedisSentinelPool(String masterName, Set sentinels, + final GenericObjectPoolConfig poolConfig, final int timeout, final int soTimeout, + final String password, final int database) { + this(masterName, sentinels, poolConfig, timeout, soTimeout, password, database, null, false, + null, null, null); } public JedisSentinelPool(String masterName, Set sentinels, final GenericObjectPoolConfig poolConfig, final int timeout, final int soTimeout, - final String password, final int database) { - this(masterName, sentinels, poolConfig, timeout, soTimeout, password, database, null); + final String password, final int database, final Boolean isRedisSslEnabled) { + this(masterName, sentinels, poolConfig, timeout, soTimeout, password, database, null, isRedisSslEnabled, + null, null, null); } public JedisSentinelPool(String masterName, Set sentinels, final GenericObjectPoolConfig poolConfig, final int connectionTimeout, final int soTimeout, - final String password, final int database, final String clientName) { + final String password, final int database, final String clientName, final Boolean isRedisSslEnabled, + final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) { this.poolConfig = poolConfig; this.connectionTimeout = connectionTimeout; this.soTimeout = soTimeout; this.password = password; this.database = database; this.clientName = clientName; + this.isRedisSslEnabled = isRedisSslEnabled; + this.sslSocketFactory = sslSocketFactory; + this.sslParameters = sslParameters; + this.hostnameVerifier = hostnameVerifier; HostAndPort master = initSentinels(sentinels, masterName); initPool(master); @@ -116,7 +164,8 @@ private void initPool(HostAndPort master) { currentHostMaster = master; if (factory == null) { factory = new JedisFactory(master.getHost(), master.getPort(), connectionTimeout, - soTimeout, password, database, clientName); + soTimeout, password, database, clientName, isRedisSslEnabled, + sslSocketFactory, sslParameters, hostnameVerifier); initPool(poolConfig, factory); } else { factory.setHostAndPort(currentHostMaster);