.setMaxConnectionsPerHost(60) .setMaxConnections(60) .setAcceptAnyCertificate(true) .build(); try (AsyncHttpClient client = new AsyncHttpClient(new GrizzlyAsyncHttpProvider(config), config)) {
.setMaxConnectionsPerHost(60) .setMaxConnections(60) .setAcceptAnyCertificate(true) .build(); try (AsyncHttpClient client = new AsyncHttpClient(new GrizzlyAsyncHttpProvider(config), config)) {
@Test public void httpProxyToHttpsTargetTest() throws IOException, InterruptedException, ExecutionException, NoSuchAlgorithmException { try (AsyncHttpClient client = getAsyncHttpClient(new AsyncHttpClientConfig.Builder().setAcceptAnyCertificate(true).build())) { Request request = new RequestBuilder("GET").setProxyServer(ntlmProxy()).setUrl(getTargetUrl2()).build(); Future<Response> responseFuture = client.executeRequest(request); Response response = responseFuture.get(); Assert.assertNotNull(response); Assert.assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK); Assert.assertEquals("127.0.0.1:" + port2, response.getHeader("x-host")); } }
AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setProxyServer(ps).setAcceptAnyCertificate(true).build(); try (AsyncHttpClient asyncHttpClient = getAsyncHttpClient(config)) { final CountDownLatch latch = new CountDownLatch(1);
private void configureTlsContext(AsyncHttpClientConfig.Builder builder) { TlsContextFactory resolvedTlsContextFactory; if (tlsContextFactory != null) { resolvedTlsContextFactory = tlsContextFactory; try { sslContext = tlsContextFactory.createSslContext(); } catch (Exception e) { throw new MuleRuntimeException(createStaticMessage("Cannot initialize SSL context"), e); } // This sets all the TLS configuration needed, except for the enabled protocols and cipher suites. builder.setSSLContext(sslContext); TlsContextTrustStoreConfiguration trustStoreConfiguration = tlsContextFactory.getTrustStoreConfiguration(); if (trustStoreConfiguration != null && trustStoreConfiguration.isInsecure()) { logger .warn(format("TLS configuration for client %s has been set to use an insecure trust store. This means no certificate validations will be performed, rendering connections vulnerable to attacks. Use at own risk.", name)); // This disables hostname verification builder.setAcceptAnyCertificate(true); } } else { resolvedTlsContextFactory = defaultTlsContextFactory; } // These complete the set up, they must always be set in case an implicit SSL connection is used if (resolvedTlsContextFactory.getEnabledCipherSuites() != null) { builder.setEnabledCipherSuites(resolvedTlsContextFactory.getEnabledCipherSuites()); } if (resolvedTlsContextFactory.getEnabledProtocols() != null) { builder.setEnabledProtocols(resolvedTlsContextFactory.getEnabledProtocols()); } }
@Test(groups = { "online", "default_provider" }) public void testConfigProxy() throws IOException, InterruptedException, ExecutionException, TimeoutException { AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder()// .setProxyServer(new ProxyServer(ProxyServer.Protocol.HTTPS, "127.0.0.1", port1))// .setAcceptAnyCertificate(true)// .setFollowRedirect(true)// .build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { RequestBuilder rb = new RequestBuilder("GET").setUrl(getTargetUrl2()); Future<Response> responseFuture = client.executeRequest(rb.build(), new AsyncCompletionHandlerBase() { public void onThrowable(Throwable t) { t.printStackTrace(); log.debug(t.getMessage(), t); } @Override public Response onCompleted(Response response) throws Exception { return response; } }); Response r = responseFuture.get(); assertEquals(r.getStatusCode(), 200); assertEquals(r.getHeader("X-Connection"), "keep-alive"); } }
@Test(groups = { "online", "default_provider" }) public void testRequestProxy() throws IOException, InterruptedException, ExecutionException, TimeoutException { ProxyServer ps = new ProxyServer(ProxyServer.Protocol.HTTPS, "127.0.0.1", port1); AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder()// .setFollowRedirect(true)// .setAcceptAnyCertificate(true)// .build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { RequestBuilder rb = new RequestBuilder("GET").setProxyServer(ps).setUrl(getTargetUrl2()); Future<Response> responseFuture = client.executeRequest(rb.build(), new AsyncCompletionHandlerBase() { public void onThrowable(Throwable t) { t.printStackTrace(); log.debug(t.getMessage(), t); } @Override public Response onCompleted(Response response) throws Exception { return response; } }); Response r = responseFuture.get(); assertEquals(r.getStatusCode(), 200); assertEquals(r.getHeader("X-Connection"), "keep-alive"); } }
/** * Creates new HttpClient from the configuration set * * @return new HttpClient instance */ public HttpClient build() { final AsyncHttpClientConfig.Builder configBuilder = new AsyncHttpClientConfig.Builder(). setConnectTimeout(connectionTimeout). setMaxRequestRetry(retries). setRequestTimeout(requestTimeout). setCompressionEnforced(compressionEnforced). setDisableUrlEncodingForBoundedRequests(disableUrlEncoding). setMaxConnectionsPerHost(maxConnectionsPerHost). setMaxConnections(maxTotalConnections). setAsyncHttpClientProviderConfig(NettyConfigHolder.INSTANCE). setFollowRedirect(followRedirect). setAcceptAnyCertificate(acceptAnySslCertificate); if (readTimeout != null) { configBuilder.setReadTimeout(readTimeout); } return new HttpClient(new AsyncHttpClient(configBuilder.build()), responseMaxSize, marshallingStrategy); } }
@Test(groups = { "standalone", "default_provider" }) public void httpToHttpsProperConfig() throws Throwable { isSet.getAndSet(false); AsyncHttpClientConfig cg = new AsyncHttpClientConfig.Builder()// .setMaxRedirects(5)// .setFollowRedirect(true)// .setAcceptAnyCertificate(true)// .build(); try (AsyncHttpClient client = getAsyncHttpClient(cg)) { Response response = client.prepareGet(getTargetUrl()).setHeader("X-redirect", getTargetUrl2() + "/test2").execute().get(); assertNotNull(response); assertEquals(response.getStatusCode(), 200); assertEquals(response.getHeader("X-httpToHttps"), "PASS"); // Test if the internal channel is downgraded to clean http. response = client.prepareGet(getTargetUrl()).setHeader("X-redirect", getTargetUrl2() + "/foo2").execute().get(); assertNotNull(response); assertEquals(response.getStatusCode(), 200); assertEquals(response.getHeader("X-httpToHttps"), "PASS"); } }
@Test(groups = { "standalone", "default_provider" }) public void httpToHttpsRedirect() throws Throwable { isSet.getAndSet(false); AsyncHttpClientConfig cg = new AsyncHttpClientConfig.Builder()// .setMaxRedirects(5)// .setFollowRedirect(true)// .setAcceptAnyCertificate(true)// .build(); try (AsyncHttpClient client = getAsyncHttpClient(cg)) { Response response = client.prepareGet(getTargetUrl()).setHeader("X-redirect", getTargetUrl2()).execute().get(); assertNotNull(response); assertEquals(response.getStatusCode(), 200); assertEquals(response.getHeader("X-httpToHttps"), "PASS"); } }
@Test(groups = { "standalone", "default_provider" }) public void relativeLocationUrl() throws Throwable { isSet.getAndSet(false); AsyncHttpClientConfig cg = new AsyncHttpClientConfig.Builder()// .setMaxRedirects(5)// .setFollowRedirect(true)// .setAcceptAnyCertificate(true)// .build(); try (AsyncHttpClient client = getAsyncHttpClient(cg)) { Response response = client.prepareGet(getTargetUrl()).setHeader("X-redirect", "/foo/test").execute().get(); assertNotNull(response); assertEquals(response.getStatusCode(), 200); assertEquals(response.getUri().toString(), getTargetUrl()); } } }
protected static HttpClient newHttpClient() { final AsyncHttpClient asyncHttpClient = new AsyncHttpClient(new AsyncHttpClientConfig.Builder().setAcceptAnyCertificate(true).build()); return AsyncHttpClientAdapter.of(asyncHttpClient); }
@Test(groups = { "standalone", "default_provider" }) public void testNonProxyHostsSsl() throws IOException, ExecutionException, TimeoutException, InterruptedException { AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder()// .setAcceptAnyCertificate(true)// .build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Response resp = client.prepareGet(getTargetUrl2()).setProxyServer(new ProxyServer("127.0.0.1", port1 - 1).addNonProxyHost("127.0.0.1")).execute().get(3, TimeUnit.SECONDS); assertNotNull(resp); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getHeader("X-pathInfo"), "/foo/test"); } } }
public Builder setAcceptAnyCertificate(boolean acceptAnyCertificate) { configBuilder.setAcceptAnyCertificate(acceptAnyCertificate); return this; }
public Builder setAcceptAnyCertificate(boolean acceptAnyCertificate) { configBuilder.setAcceptAnyCertificate(acceptAnyCertificate); return this; }
public Builder setAcceptAnyCertificate(boolean acceptAnyCertificate) { configBuilder.setAcceptAnyCertificate(acceptAnyCertificate); return this; }
public Builder setAcceptAnyCertificate(boolean acceptAnyCertificate) { configBuilder.setAcceptAnyCertificate(acceptAnyCertificate); return this; }