mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-20 07:58:03 +01:00
Allow callers to specify a TLS version when constructing a FaultTolerantHttpClient.
This commit is contained in:
committed by
Jon Chambers
parent
a1434524a4
commit
933dd81d82
@@ -37,6 +37,9 @@ public class FaultTolerantHttpClient {
|
||||
private final Retry retry;
|
||||
private final CircuitBreaker breaker;
|
||||
|
||||
public static final String SECURITY_PROTOCOL_TLS_1_2 = "TLSv1.2";
|
||||
public static final String SECURITY_PROTOCOL_TLS_1_3 = "TLSv1.3";
|
||||
|
||||
public static Builder newBuilder() {
|
||||
return new Builder();
|
||||
}
|
||||
@@ -86,6 +89,7 @@ public class FaultTolerantHttpClient {
|
||||
private String name;
|
||||
private Executor executor;
|
||||
private KeyStore trustStore;
|
||||
private String securityProtocol = SECURITY_PROTOCOL_TLS_1_2;
|
||||
private RetryConfiguration retryConfiguration;
|
||||
private CircuitBreakerConfiguration circuitBreakerConfiguration;
|
||||
|
||||
@@ -126,6 +130,11 @@ public class FaultTolerantHttpClient {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder withSecurityProtocol(final String securityProtocol) {
|
||||
this.securityProtocol = securityProtocol;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder withTrustedServerCertificate(final String certificatePem) throws CertificateException {
|
||||
this.trustStore = CertificateUtil.buildKeyStoreForPem(certificatePem);
|
||||
return this;
|
||||
@@ -142,13 +151,14 @@ public class FaultTolerantHttpClient {
|
||||
.version(version)
|
||||
.executor(executor);
|
||||
|
||||
final SslConfigurator sslConfigurator = SslConfigurator.newInstance().securityProtocol(securityProtocol);
|
||||
|
||||
if (this.trustStore != null) {
|
||||
builder.sslContext(SslConfigurator.newInstance()
|
||||
.securityProtocol("TLSv1.2")
|
||||
.trustStore(trustStore)
|
||||
.createSSLContext());
|
||||
sslConfigurator.trustStore(trustStore);
|
||||
}
|
||||
|
||||
builder.sslContext(sslConfigurator.createSSLContext());
|
||||
|
||||
return new FaultTolerantHttpClient(name, builder.build(), retryConfiguration, circuitBreakerConfiguration);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user