public HttpClientConnectionManager newConnectionManager(boolean disableSslValidation, int maxTotalConnections, int maxConnectionsPerRoute) { return newConnectionManager(disableSslValidation, maxTotalConnections, maxConnectionsPerRoute, -1, TimeUnit.MILLISECONDS, null); }
@Bean @ConditionalOnMissingBean public ApacheHttpClientFactory apacheHttpClientFactory(HttpClientBuilder builder) { return new DefaultApacheHttpClientFactory(builder); } }
@Bean @ConditionalOnMissingBean public OkHttpClientConnectionPoolFactory connPoolFactory() { return new DefaultOkHttpClientConnectionPoolFactory(); }
@Test public void newConnectionManagerWithSSL() throws Exception { HttpClientConnectionManager connectionManager = new DefaultApacheHttpClientConnectionManagerFactory() .newConnectionManager(false, 2, 6); Lookup<ConnectionSocketFactory> socketFactoryRegistry = getConnectionSocketFactoryLookup( connectionManager); assertThat(socketFactoryRegistry.lookup("https"), is(notNullValue())); assertThat(getX509TrustManager(socketFactoryRegistry).getAcceptedIssuers(), is(notNullValue())); }
@Test public void newConnectionManagerWithTTL() throws Exception { HttpClientConnectionManager connectionManager = new DefaultApacheHttpClientConnectionManagerFactory() .newConnectionManager(false, 2, 6, 56l, TimeUnit.DAYS, null); assertEquals(6, ((PoolingHttpClientConnectionManager) connectionManager) .getDefaultMaxPerRoute()); assertEquals(2, ((PoolingHttpClientConnectionManager) connectionManager).getMaxTotal()); Object pool = getField(((PoolingHttpClientConnectionManager) connectionManager), "pool"); assertEquals(new Long(56), getField(pool, "timeToLive")); TimeUnit timeUnit = getField(pool, "tunit"); assertEquals(TimeUnit.DAYS, timeUnit); }
@Test public void create() throws Exception { DefaultOkHttpClientConnectionPoolFactory connectionPoolFactory = new DefaultOkHttpClientConnectionPoolFactory(); ConnectionPool connectionPool = connectionPoolFactory.create(2, 3, TimeUnit.MILLISECONDS); int idleConnections = getField(connectionPool, "maxIdleConnections"); long keepAliveDuration = getField(connectionPool, "keepAliveDurationNs"); assertEquals(2, idleConnections); assertEquals(TimeUnit.MILLISECONDS.toNanos(3), keepAliveDuration); }
@Test public void testCustomBuilder() { OkHttpClient.Builder builder = okHttpClientFactory.createBuilder(false); Integer timeout = getField(builder, "connectTimeout"); assertEquals(1, timeout.intValue()); }
@Bean @ConditionalOnMissingBean public OkHttpClientFactory okHttpClientFactory(OkHttpClient.Builder builder) { return new DefaultOkHttpClientFactory(builder); } }
@Bean @ConditionalOnMissingBean public ApacheHttpClientConnectionManagerFactory connManFactory() { return new DefaultApacheHttpClientConnectionManagerFactory(); }
@Override public OkHttpClient.Builder createBuilder(boolean disableSslValidation) { if (disableSslValidation) { try { X509TrustManager disabledTrustManager = new DisableValidationTrustManager(); TrustManager[] trustManagers = new TrustManager[1]; trustManagers[0] = disabledTrustManager; SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustManagers, new java.security.SecureRandom()); SSLSocketFactory disabledSSLSocketFactory = sslContext.getSocketFactory(); builder.sslSocketFactory(disabledSSLSocketFactory, disabledTrustManager); builder.hostnameVerifier(new TrustAllHostnames()); } catch (NoSuchAlgorithmException e) { LOG.warn("Error setting SSLSocketFactory in OKHttpClient", e); } catch (KeyManagementException e) { LOG.warn("Error setting SSLSocketFactory in OKHttpClient", e); } } return builder; } }
final SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, new TrustManager[] { new DisabledValidationTrustManager()}, new SecureRandom()); registryBuilder.register(HTTPS_SCHEME, new SSLConnectionSocketFactory(
@Bean public ApacheHttpClientFactory clientFactory() { return new MyApacheHttpClientFactory(); }
@Bean public ApacheHttpClientConnectionManagerFactory connectionManagerFactory() { return new MyApacheHttpClientConnectionManagerFactory(); }
@Bean public OkHttpClientConnectionPoolFactory connectionPoolFactory() { return new MyOkHttpConnectionPoolFactory(); }
@Bean public MyHttpClientBuilder builder() { return new MyHttpClientBuilder(); }
@Bean public OkHttpClientFactory okHttpClientFactory() { return new MyOkHttpClientFactory(); }
public HttpClientConnectionManager newConnectionManager(boolean disableSslValidation, int maxTotalConnections, int maxConnectionsPerRoute) { return newConnectionManager(disableSslValidation, maxTotalConnections, maxConnectionsPerRoute, -1, TimeUnit.MILLISECONDS, null); }
@Bean @ConditionalOnMissingBean public OkHttpClientFactory okHttpClientFactory(OkHttpClient.Builder builder) { return new DefaultOkHttpClientFactory(builder); } }
private X509TrustManager getX509TrustManager( Lookup<ConnectionSocketFactory> socketFactoryRegistry) { ConnectionSocketFactory connectionSocketFactory = socketFactoryRegistry .lookup("https"); SSLSocketFactory sslSocketFactory = getField(connectionSocketFactory, "socketfactory"); SSLContextSpi sslContext = getField(sslSocketFactory, "context"); return getField(sslContext, "trustManager"); }