SSLOptionsJedisIT.java
package redis.clients.jedis.tls;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import redis.clients.jedis.DefaultJedisClientConfig;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.SslOptions;
/**
* SSL/TLS tests for {@link Jedis} using SslOptions builder pattern.
* <p>
* Tests various SSL/TLS connection configurations including:
* <ul>
* <li>Basic SSL connection with truststore</li>
* <li>Insecure SSL mode (no certificate verification)</li>
* <li>Custom SSL protocol</li>
* <li>ACL authentication over SSL</li>
* </ul>
*/
public class SSLOptionsJedisIT extends JedisTlsTestBase {
/**
* Tests connecting to Redis with various SSL configurations using DefaultJedisClientConfig.
*/
@ParameterizedTest(name = "connectWithSsl_{0}")
@MethodSource("sslOptionsProvider")
void connectWithSsl(String testName, SslOptions ssl) {
try (Jedis jedis = new Jedis(endpoint.getHostAndPort(),
DefaultJedisClientConfig.builder().sslOptions(ssl).build())) {
jedis.auth(endpoint.getPassword());
assertEquals("PONG", jedis.ping());
}
}
/**
* Tests connecting to Redis with various SSL configurations using endpoint's client config.
*/
@ParameterizedTest(name = "connectWithClientConfig_{0}")
@MethodSource("sslOptionsProvider")
void connectWithClientConfig(String testName, SslOptions ssl) {
try (Jedis jedis = new Jedis(endpoint.getHostAndPort(),
endpoint.getClientConfigBuilder().sslOptions(ssl).build())) {
assertEquals("PONG", jedis.ping());
}
}
/**
* Tests ACL authentication over SSL.
*/
@Test
public void connectWithAcl() {
try (Jedis jedis = new Jedis(aclEndpoint.getHostAndPort(),
aclEndpoint.getClientConfigBuilder().sslOptions(sslOptions).build())) {
assertEquals("PONG", jedis.ping());
}
}
}