|
36 | 36 | import org.apache.http.client.methods.HttpPost; |
37 | 37 | import org.apache.http.client.protocol.HttpClientContext; |
38 | 38 | import org.apache.http.client.utils.HttpClientUtils; |
| 39 | +import org.apache.http.config.RegistryBuilder; |
39 | 40 | import org.apache.http.config.SocketConfig; |
40 | 41 | import org.apache.http.conn.socket.ConnectionSocketFactory; |
| 42 | +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; |
| 43 | +import org.apache.http.conn.ssl.SSLContexts; |
41 | 44 | import org.apache.http.entity.ContentType; |
42 | 45 | import org.apache.http.impl.client.CloseableHttpClient; |
43 | 46 | import org.apache.http.impl.client.HttpClients; |
|
55 | 58 | import com.mirth.connect.model.User; |
56 | 59 | import com.mirth.connect.model.converters.ObjectXMLSerializer; |
57 | 60 | import com.mirth.connect.model.notification.Notification; |
| 61 | +import com.mirth.connect.util.MirthSSLUtil; |
58 | 62 |
|
59 | 63 | public class ConnectServiceUtil { |
60 | 64 | private final static String URL_CONNECT_SERVER = BrandingConstants.CONNECT_SERVER_URL; |
@@ -258,11 +262,14 @@ public static boolean sendStatistics(String serverId, String mirthVersion, boole |
258 | 262 | } |
259 | 263 |
|
260 | 264 | private static CloseableHttpClient getClient(String[] protocols, String[] cipherSuites) { |
261 | | - BasicHttpClientConnectionManager httpClientConnectionManager = new BasicHttpClientConnectionManager(); |
| 265 | + RegistryBuilder<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory> create(); |
| 266 | + String[] enabledProtocols = MirthSSLUtil.getEnabledHttpsProtocols(protocols); |
| 267 | + String[] enabledCipherSuites = MirthSSLUtil.getEnabledHttpsCipherSuites(cipherSuites); |
| 268 | + SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(SSLContexts.createSystemDefault(), enabledProtocols, enabledCipherSuites, SSLConnectionSocketFactory.STRICT_HOSTNAME_VERIFIER); |
| 269 | + socketFactoryRegistry.register("https", sslConnectionSocketFactory); |
| 270 | + |
| 271 | + BasicHttpClientConnectionManager httpClientConnectionManager = new BasicHttpClientConnectionManager(socketFactoryRegistry.build()); |
262 | 272 | httpClientConnectionManager.setSocketConfig(SocketConfig.custom().setSoTimeout(TIMEOUT).build()); |
263 | | - return HttpClients.custom() |
264 | | - .useSystemProperties() |
265 | | - .setConnectionManager(httpClientConnectionManager) |
266 | | - .build(); |
| 273 | + return HttpClients.custom().setConnectionManager(httpClientConnectionManager).build(); |
267 | 274 | } |
268 | 275 | } |
0 commit comments