-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
package com.yezhaodan;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.slf4j.LoggerFactory;
public class SSLPoolingHttpClientConnectionManagerFactory implements ServletContextListener {
static HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
return true;
}
};
static javax.net.ssl.SSLContext sc;
static {
class MinTrustManager implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
throws java.security.cert.CertificateException {
return;
}
public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
throws java.security.cert.CertificateException {
return;
}
}
javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
javax.net.ssl.TrustManager tm = new MinTrustManager();
trustAllCerts[0] = tm;
try {
sc = javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(hv);
} catch (Exception e) {
LoggerFactory.getLogger(SSLPoolingHttpClientConnectionManagerFactory.class).error("error", e);
}
}
public static javax.net.ssl.SSLContext getSc() {
return sc;
}
private static SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sc, hv);
public static SSLConnectionSocketFactory getSslConnectionSocketFactory() {
return sslConnectionSocketFactory;
}
public static PoolingHttpClientConnectionManager create() throws Exception {
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory> create()
.register("http", PlainConnectionSocketFactory.INSTANCE).register("https", sslConnectionSocketFactory).build();
return new PoolingHttpClientConnectionManager(socketFactoryRegistry);
}
public void contextInitialized(ServletContextEvent sce) {
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels