Skip to content

Commit 73689ea

Browse files
committed
Move uses of SSLIOSessionStrategy to profile
1 parent 6373d73 commit 73689ea

File tree

4 files changed

+20
-20
lines changed

4 files changed

+20
-20
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ssl/SSLService.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -233,17 +233,17 @@ public SslProfile profile(String profileName) {
233233
* return a context created from the default configuration
234234
* @return Never {@code null}.
235235
* @deprecated This method will fail if the SSL configuration uses a {@link org.elasticsearch.common.settings.SecureSetting} but the
236-
* {@link org.elasticsearch.common.settings.SecureSettings} have been closed. Use {@link #getSSLConfiguration(String)}
237-
* and {@link #sslIOSessionStrategy(SslConfiguration)} (Deprecated, but not removed because monitoring uses dynamic SSL settings)
236+
* {@link org.elasticsearch.common.settings.SecureSettings} have been closed. Use {@link #profile(String)}
237+
* and {@link SslProfile#ioSessionStrategy4()}
238+
* (Deprecated, but not removed because monitoring uses dynamic SSL settings)
238239
*/
239240
@Deprecated
240241
public SSLIOSessionStrategy sslIOSessionStrategy(Settings settingsToUse) {
241242
SslConfiguration config = sslConfiguration(settingsToUse);
242-
return sslIOSessionStrategy(config);
243+
return sslIOSessionStrategy(config, sslContext(config));
243244
}
244245

245-
public SSLIOSessionStrategy sslIOSessionStrategy(SslConfiguration config) {
246-
SSLContext sslContext = sslContext(config);
246+
SSLIOSessionStrategy sslIOSessionStrategy(SslConfiguration config, SSLContext sslContext) {
247247
String[] ciphers = supportedCiphers(sslParameters(sslContext).getCipherSuites(), config.getCipherSuites(), false);
248248
String[] supportedProtocols = config.supportedProtocols().toArray(Strings.EMPTY_ARRAY);
249249
HostnameVerifier verifier;
@@ -254,8 +254,7 @@ public SSLIOSessionStrategy sslIOSessionStrategy(SslConfiguration config) {
254254
verifier = NoopHostnameVerifier.INSTANCE;
255255
}
256256

257-
final SSLIOSessionStrategy strategy = sslIOSessionStrategy(sslContext, supportedProtocols, ciphers, verifier);
258-
return strategy;
257+
return sslIOSessionStrategy(sslContext, supportedProtocols, ciphers, verifier);
259258
}
260259

261260
public static HostnameVerifier getHostnameVerifier(SslConfiguration sslConfiguration) {
@@ -847,7 +846,7 @@ public SSLConnectionSocketFactory socketConnectionFactory() {
847846

848847
@Override
849848
public SSLIOSessionStrategy ioSessionStrategy4() {
850-
return SSLService.this.sslIOSessionStrategy(this.sslConfiguration);
849+
return sslIOSessionStrategy(this.sslConfiguration, context);
851850
}
852851

853852
@Override

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ssl/SSLServiceTests.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.elasticsearch.xpack.core.XPackSettings;
3838
import org.elasticsearch.xpack.core.ssl.cert.CertificateInfo;
3939
import org.junit.Before;
40+
import org.mockito.Mockito;
4041

4142
import java.nio.file.Path;
4243
import java.security.AccessController;
@@ -655,7 +656,7 @@ public void testSSLStrategy() {
655656

656657
// ensure it actually goes through and calls the real method
657658
when(sslService.sslIOSessionStrategy(settings)).thenCallRealMethod();
658-
when(sslService.sslIOSessionStrategy(sslConfig)).thenCallRealMethod();
659+
when(sslService.sslIOSessionStrategy(Mockito.eq(sslConfig), Mockito.any(SSLContext.class))).thenCallRealMethod();
659660

660661
final SSLIOSessionStrategy actual = sslService.sslIOSessionStrategy(settings);
661662
assertThat(actual, sameInstance(sslStrategy));
@@ -961,7 +962,7 @@ public void testThatSSLContextWithoutSettingsWorks() throws Exception {
961962
final SSLService sslService = new SSLService(env);
962963
final SSLContext sslContext1 = sslService.sslContext(sslService.sslConfiguration(Settings.EMPTY));
963964
final SSLContext sslContext2 = sslService.profile("xpack.http.ssl").sslContext();
964-
965+
965966
for (var sslContext : List.of(sslContext1, sslContext2)) {
966967
try (CloseableHttpClient client = HttpClients.custom().setSSLContext(sslContext).build()) {
967968
// Execute a GET on a site known to have a valid certificate signed by a trusted public CA
@@ -992,9 +993,9 @@ public void testThatSSLContextTrustsJDKTrustedCAs() throws Exception {
992993
@Network
993994
public void testThatSSLIOSessionStrategyWithoutSettingsWorks() throws Exception {
994995
SSLService sslService = new SSLService(env);
995-
SslConfiguration sslConfiguration = sslService.getSSLConfiguration("xpack.security.transport.ssl");
996-
logger.info("SSL Configuration: {}", sslConfiguration);
997-
SSLIOSessionStrategy sslStrategy = sslService.sslIOSessionStrategy(sslConfiguration);
996+
SslProfile profile = sslService.profile("xpack.security.transport.ssl");
997+
logger.info("SSL Configuration: {}", profile.configuration());
998+
SSLIOSessionStrategy sslStrategy = profile.ioSessionStrategy4();
998999
try (CloseableHttpAsyncClient client = getAsyncHttpClient(sslStrategy)) {
9991000
client.start();
10001001

@@ -1014,7 +1015,8 @@ public void testThatSSLIOSessionStrategyTrustsJDKTrustedCAs() throws Exception {
10141015
.setSecureSettings(secureSettings)
10151016
.build();
10161017
final SSLService sslService = new SSLService(TestEnvironment.newEnvironment(buildEnvSettings(settings)));
1017-
SSLIOSessionStrategy sslStrategy = sslService.sslIOSessionStrategy(sslService.getSSLConfiguration("xpack.security.transport.ssl"));
1018+
final SslProfile profile = sslService.profile("xpack.security.transport.ssl");
1019+
final SSLIOSessionStrategy sslStrategy = profile.ioSessionStrategy4();
10181020
try (CloseableHttpAsyncClient client = getAsyncHttpClient(sslStrategy)) {
10191021
client.start();
10201022

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/external/http/HttpClientManager.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,8 @@ public static HttpClientManager create(
117117
TimeValue connectionTtl
118118
) {
119119
// Set the sslStrategy to ensure an encrypted connection, as Elastic Inference Service requires it.
120-
SSLIOSessionStrategy sslioSessionStrategy = sslService.sslIOSessionStrategy(
121-
sslService.getSSLConfiguration(ELASTIC_INFERENCE_SERVICE_SSL_CONFIGURATION_PREFIX)
122-
);
123-
120+
final SSLIOSessionStrategy sslioSessionStrategy = sslService.profile(ELASTIC_INFERENCE_SERVICE_SSL_CONFIGURATION_PREFIX)
121+
.ioSessionStrategy4();
124122
PoolingNHttpClientConnectionManager connectionManager = createConnectionManager(sslioSessionStrategy, connectionTtl);
125123
return new HttpClientManager(settings, connectionManager, threadPool, clusterService, throttlerManager);
126124
}

x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/exporter/http/HttpExporter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import org.elasticsearch.core.TimeValue;
4040
import org.elasticsearch.xpack.core.ssl.SSLConfigurationSettings;
4141
import org.elasticsearch.xpack.core.ssl.SSLService;
42+
import org.elasticsearch.xpack.core.ssl.SslProfile;
4243
import org.elasticsearch.xpack.monitoring.Monitoring;
4344
import org.elasticsearch.xpack.monitoring.MonitoringTemplateRegistry;
4445
import org.elasticsearch.xpack.monitoring.exporter.ClusterAlertsUtil;
@@ -758,8 +759,8 @@ private static SSLIOSessionStrategy configureSslStrategy(
758759
// This configuration uses secure settings. We cannot load a new SSL strategy, as the secure settings have already been closed.
759760
// Due to #registerSettingValidators we know that the settings not been dynamically updated, and the pre-configured strategy
760761
// is still the correct configuration for use in this exporter.
761-
final SslConfiguration sslConfiguration = sslService.getSSLConfiguration(concreteSetting.getKey());
762-
sslStrategy = sslService.sslIOSessionStrategy(sslConfiguration);
762+
final SslProfile profile = sslService.profile(concreteSetting.getKey());
763+
sslStrategy = profile.ioSessionStrategy4();
763764
}
764765
return sslStrategy;
765766
}

0 commit comments

Comments
 (0)