@@ -62,6 +62,26 @@ private[bootstrap] object HttpContactPointBootstrap {
6262
6363 private case object ProbeTick extends DeadLetterSuppression
6464 private val ProbingTimerKey = " probing-key"
65+
66+ def generateSSLContext (settings : ClusterBootstrapSettings ): SSLContext = {
67+ val factory = KeyManagerFactory .getInstance(KeyManagerFactory .getDefaultAlgorithm)
68+ val keyStore = KeyStore .getInstance(" PKCS12" )
69+ keyStore.load(null )
70+ factory.init(keyStore, Array .empty)
71+ val km : Array [KeyManager ] = factory.getKeyManagers
72+ val caPath = settings.contactPoint.httpClient.caPath.trim
73+ val tm : Array [TrustManager ] = if (caPath.isEmpty) {
74+ Array .empty
75+ } else {
76+ val certificates = PemManagersProvider .loadCertificates(caPath)
77+ PemManagersProvider .buildTrustManagers(certificates)
78+ }
79+ val tlsVersion = settings.contactPoint.httpClient.tlsVersion.trim
80+ val random : SecureRandom = new SecureRandom
81+ val sslContext = SSLContext .getInstance(tlsVersion)
82+ sslContext.init(km, tm, random)
83+ sslContext
84+ }
6585}
6686
6787/**
@@ -95,28 +115,8 @@ private[bootstrap] class HttpContactPointBootstrap(
95115
96116 private implicit val sys : ActorSystem = context.system
97117
98- private lazy val sslContext = {
99- val factory = KeyManagerFactory .getInstance(KeyManagerFactory .getDefaultAlgorithm)
100- val keyStore = KeyStore .getInstance(" PKCS12" )
101- keyStore.load(null )
102- factory.init(keyStore, Array .empty)
103- val km : Array [KeyManager ] = factory.getKeyManagers
104- val caPath = settings.contactPoint.httpClient.caPath.trim
105- val tm : Array [TrustManager ] = if (caPath.isEmpty) {
106- Array .empty
107- } else {
108- val certificates = PemManagersProvider .loadCertificates(caPath)
109- PemManagersProvider .buildTrustManagers(certificates)
110- }
111- val tlsVersion = settings.contactPoint.httpClient.tlsVersion.trim
112- val random : SecureRandom = new SecureRandom
113- val sslContext = SSLContext .getInstance(tlsVersion)
114- sslContext.init(km, tm, random)
115- sslContext
116- }
117-
118118 private lazy val clientSslContext : HttpsConnectionContext =
119- ConnectionContext .httpsClient(sslContext )
119+ ConnectionContext .httpsClient(HttpContactPointBootstrap .generateSSLContext(settings) )
120120
121121 private val http = Http ()
122122
0 commit comments