Skip to content

Commit 0a3f6fe

Browse files
committed
-- added method to return httClient with TLSv1.2 instance
1 parent 10b7be2 commit 0a3f6fe

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

src/main/java/net/authorize/util/HttpClient.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,28 @@
77
import java.io.UnsupportedEncodingException;
88
import java.net.URI;
99
import java.net.URLDecoder;
10+
import java.security.KeyStore;
1011
import java.util.Arrays;
1112
import java.util.HashMap;
1213
import java.util.Map;
1314

15+
import javax.net.ssl.SSLContext;
16+
import javax.net.ssl.TrustManagerFactory;
17+
1418
import org.apache.commons.logging.Log;
1519
import org.apache.commons.logging.LogFactory;
1620
import org.apache.http.HttpEntity;
1721
import org.apache.http.HttpHost;
1822
import org.apache.http.HttpResponse;
23+
import org.apache.http.client.config.RequestConfig;
1924
import org.apache.http.client.methods.HttpPost;
2025
import org.apache.http.conn.params.ConnRoutePNames;
26+
import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
27+
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
2128
import org.apache.http.entity.StringEntity;
2229
import org.apache.http.impl.client.DefaultHttpClient;
30+
import org.apache.http.impl.client.HttpClients;
31+
import org.apache.http.impl.client.LaxRedirectStrategy;
2332
import org.apache.http.params.CoreProtocolPNames;
2433
import org.apache.http.params.HttpConnectionParams;
2534
import org.apache.http.protocol.HTTP;
@@ -313,4 +322,41 @@ public static void setProxyIfRequested(DefaultHttpClient httpClient) {
313322
httpClient.getParams().setParameter( ConnRoutePNames.DEFAULT_PROXY, proxyHttpHost);
314323
}
315324
}
325+
326+
/**
327+
* @return returns an SSL context with TLSv1.2 protocol instance to be used in the call
328+
*/
329+
private static SSLContext getSSLContext() {
330+
try {
331+
final SSLContext sc = SSLContext.getInstance("TLSv1.2");
332+
final TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
333+
trustManagerFactory.init((KeyStore) null);
334+
sc.init(null, trustManagerFactory.getTrustManagers(), new java.security.SecureRandom());
335+
return sc;
336+
}
337+
catch (Exception e) {
338+
e.printStackTrace();
339+
return null;
340+
}
341+
}
342+
343+
/**
344+
* Returns a HTTPClient instance which enforce TLSv1.2 protocol for all the calls
345+
* @return org.apache.http.client.HttpClient instance
346+
* @throws Exception
347+
*/
348+
static org.apache.http.client.HttpClient getHttpsClient() throws Exception {
349+
SSLContext sslcontext = getSSLContext();
350+
try {
351+
LayeredConnectionSocketFactory sslSocketFactory = new org.apache.http.conn.ssl.SSLConnectionSocketFactory(sslcontext, SSLConnectionSocketFactory.STRICT_HOSTNAME_VERIFIER);
352+
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(httpConnectionTimeout).build();
353+
return HttpClients.custom()
354+
.setSSLSocketFactory(sslSocketFactory)
355+
.setDefaultRequestConfig(requestConfig)
356+
.setRedirectStrategy(new LaxRedirectStrategy())
357+
.build();
358+
} catch (Exception e) {
359+
return null;
360+
}
361+
}
316362
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy