/* * gw2live - GuildWars 2 Dynamic Map * * Website: http://gw2map.com * * Copyright 2013 zyclonite networx * http://zyclonite.net * Developer: Lukas Prettenthaler */ package net.zyclonite.gw2live.util; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.client.HttpClient; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.conn.PoolingClientConnectionManager; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.jboss.resteasy.client.jaxrs.ClientHttpEngine; import org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine; /** * * @author zyclonite */ public class HttpEngine { private static final Log LOG = LogFactory.getLog(HttpEngine.class); public static ClientHttpEngine getHttpEngine() { final SSLContext sslContext; SSLSocketFactory sslSocketFactory = null; try { sslContext = SSLContext.getInstance("SSL"); // set up a TrustManager that trusts everything sslContext.init(null, new TrustManager[]{new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(final X509Certificate[] certs, final String authType) { } @Override public void checkServerTrusted(final X509Certificate[] certs, final String authType) { } }}, new SecureRandom()); sslSocketFactory = new SSLSocketFactory(sslContext); } catch (NoSuchAlgorithmException ex) { } catch (KeyManagementException ex) { LOG.error(ex); } final PoolingClientConnectionManager cm = new PoolingClientConnectionManager(); cm.setMaxTotal(10); final HttpClient httpClient = new DefaultHttpClient(cm); final HttpParams params = httpClient.getParams(); HttpConnectionParams.setConnectionTimeout(params, 5000); HttpConnectionParams.setSoTimeout(params, 5000); HttpConnectionParams.setStaleCheckingEnabled(params, true); final ClientConnectionManager conManager = httpClient.getConnectionManager(); if (sslSocketFactory != null) { SchemeRegistry schemeRegistry = conManager.getSchemeRegistry(); schemeRegistry.register(new Scheme("https", 443, sslSocketFactory)); } final ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(httpClient); return engine; } }