in server/src/main/java/org/apache/cassandra/sidecar/utils/SidecarClientProvider.java [138:176]
static WebClientOptions webClientOptions(SidecarClientConfiguration clientConfig)
{
WebClientOptions options = new WebClientOptions();
options.getPoolOptions()
.setCleanerPeriod(clientConfig.connectionPoolCleanerPeriod().toIntMillis())
.setEventLoopSize(clientConfig.connectionPoolEventLoopSize())
.setHttp1MaxSize(clientConfig.connectionPoolMaxSize())
.setMaxWaitQueueSize(clientConfig.connectionPoolMaxWaitQueueSize());
SslConfiguration ssl = clientConfig.sslConfiguration();
if (ssl != null && ssl.enabled())
{
options.setSsl(true);
if (!ssl.secureTransportProtocols().isEmpty())
{
// Use LinkedHashSet to preserve input order
options.setEnabledSecureTransportProtocols(new LinkedHashSet<>(ssl.secureTransportProtocols()));
}
for (String cipherSuite : ssl.cipherSuites())
{
options.addEnabledCipherSuite(cipherSuite);
}
if (ssl.preferOpenSSL() && OpenSSLEngineOptions.isAvailable())
{
LOGGER.info("Using OpenSSL for encryption in Webclient Options");
options.setSslEngineOptions(new OpenSSLEngineOptions().setSessionCacheEnabled(true));
}
else
{
LOGGER.warn("OpenSSL not enabled, using JDK for TLS in Webclient Options");
}
configureSSLOptions(options.getSslOptions(), ssl, 0);
}
return options;
}