@Override public final void init(final Map<String, String> properties) { // map properties url = properties.get(PROPERTY_URL); final String basicAuthUser = properties.get(PROPERTY_BASIC_AUTH_USER); final String basicAuthPassword = properties.get(PROPERTY_BASIC_AUTH_PASSWORD); final String proxyHost = properties.get(PROPERTY_PROXY_HOST); final String proxyUser = properties.get(PROPERTY_PROXY_USER); final String proxyPassword = properties.get(PROPERTY_PROXY_PASSWORD); final Integer proxyPort = convertStringToInt(properties.get(PROPERTY_PROXY_PORT), null); final Integer requestTimeoutInMs = convertStringToInt(properties.get(PROPERTY_REQUEST_TIMEOUT), DEFAULT_REQUEST_TIMEOUT); builder = new AsyncHttpClientConfig.Builder(); if (basicAuthUser != null && basicAuthPassword != null) { final Realm realm = new Realm.RealmBuilder().setPrincipal(basicAuthUser).setPassword(basicAuthPassword).setUsePreemptiveAuth(true) .setScheme(AuthScheme.BASIC).build(); builder.setRealm(realm); } // Add Proxy Support - use authentication if user and password properties are set if (proxyHost != null && proxyPort != null) { final ProxyServer proxy; if (proxyUser != null && proxyPassword != null) { proxy = new ProxyServer(proxyHost, proxyPort, proxyUser, proxyPassword); } else { proxy = new ProxyServer(proxyHost, proxyPort); } builder.setProxyServer(proxy); } builder.setRequestTimeoutInMs(requestTimeoutInMs); builder.setIdleConnectionTimeoutInMs(DEFAULT_REQUEST_IDLE_TIMEOUT); }
private DefaultAhcConfig createAhcConfig(){ DefaultAhcConfig ahcConfig = new DefaultAhcConfig(); ahcConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE); ahcConfig.getClasses().add(JacksonJsonProvider.class); ahcConfig.getAsyncHttpClientConfigBuilder().setAllowPoolingConnection(false); if (realm != null) { ahcConfig.getAsyncHttpClientConfigBuilder().setRealm(realm); } if (proxyServer != null) { ahcConfig.getAsyncHttpClientConfigBuilder().setProxyServer(proxyServer); } return ahcConfig; }
@Test(groups = { "standalone", "default_provider" }) public void basicAuthAsyncConfigTest() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(new AsyncHttpClientConfig.Builder().setRealm((new Realm.RealmBuilder()).setPrincipal(user).setPassword(admin).build()).build())) { ClassLoader cl = getClass().getClassLoader(); // override system properties URL url = cl.getResource("SimpleTextFile.txt"); File file = new File(url.toURI()); final String fileContent = getFileContent(file); AsyncHttpClient.BoundRequestBuilder r = client.preparePost(getTargetUrl()).setBody(file); Future<Response> f = r.execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp); assertNotNull(resp.getHeader("X-Auth")); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getResponseBody(), fileContent); } }
result.setRealm( realm );
configBuilder.setRealm( getRealm( repository, credentialEncoding ) );
configBuilder.setRealm( getRealm( repository, credentialEncoding ) );
public AHCWebClient(Injector injector, Web.Auth authType, String username, String password, String url, Map<String, String> headers, Class<T> transporting, Key<? extends Transport> transport) { this.injector = injector; this.url = url; this.headers = (null == headers) ? null : ImmutableMap.copyOf(headers); this.authType = authType; this.username = username; this.password = password; this.transporting = transporting; this.transport = transport; // configure auth AsyncHttpClientConfig.Builder c = new AsyncHttpClientConfig.Builder(); if (null != authType) { Realm.RealmBuilder b = new Realm.RealmBuilder(); // TODO: Add support for Kerberos and SPNEGO Realm.AuthScheme scheme = authType.equals(Web.Auth.BASIC) ? Realm.AuthScheme.BASIC : Realm.AuthScheme.DIGEST; b.setPrincipal(username).setPassword(password).setScheme(scheme); c.setRealm(b.build()); } this.httpClient = new AsyncHttpClient(c.build()); }
public AHCWebClient(Injector injector, Transport transport, Web.Auth authType, String username, String password, boolean usePreemptiveAuth, String url, Map<String, String> headers, TypeLiteral<T> typeToTransform) { this.injector = injector; this.url = url; this.headers = (null == headers) ? null : ImmutableMap.copyOf(headers); this.typeToTransform = typeToTransform; this.transport = transport; // configure auth AsyncHttpClientConfig.Builder c = new AsyncHttpClientConfig.Builder(); if (null != authType) { Realm.RealmBuilder b = new Realm.RealmBuilder(); // TODO: Add support for Kerberos and SPNEGO Realm.AuthScheme scheme = authType.equals(Web.Auth.BASIC) ? Realm.AuthScheme.BASIC : Realm.AuthScheme.DIGEST; b.setPrincipal(username).setPassword(password).setScheme(scheme).setUsePreemptiveAuth(usePreemptiveAuth); c.setRealm(b.build()); } this.httpClient = new AsyncHttpClient(c.build()); }
public SimpleAsyncHttpClient build() { if (realmBuilder != null) { configBuilder.setRealm(realmBuilder.build()); } if (proxyHost != null) { configBuilder.setProxyServer(new ProxyServer(proxyProtocol, proxyHost, proxyPort, proxyPrincipal, proxyPassword)); } configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter()); SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener, providerClass); return sc; } }
public SimpleAsyncHttpClient build() { if (realmBuilder != null) { configBuilder.setRealm(realmBuilder.build()); } if (proxyHost != null) { configBuilder.setProxyServer(new ProxyServer(proxyProtocol, proxyHost, proxyPort, proxyPrincipal, proxyPassword)); } configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter()); SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener, providerClass); return sc; } }
public SimpleAsyncHttpClient build() { if (realmBuilder != null) { configBuilder.setRealm(realmBuilder.build()); } if (proxyHost != null) { configBuilder.setProxyServer(new ProxyServer(proxyProtocol, proxyHost, proxyPort, proxyPrincipal, proxyPassword)); } configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter()); SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener, providerClass); return sc; } }
private void ntlmAuthTest(RealmBuilder realmBuilder) throws IOException, InterruptedException, ExecutionException { AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setRealm(realmBuilder.build()).build(); try (AsyncHttpClient client = getAsyncHttpClient(config)) { Request request = new RequestBuilder("GET").setUrl(getTargetUrl()).build(); Future<Response> responseFuture = client.executeRequest(request); int status = responseFuture.get().getStatusCode(); Assert.assertEquals(status, 200); } }
public SimpleAsyncHttpClient build() { if (realmBuilder != null) { configBuilder.setRealm(realmBuilder.build()); } if (proxyHost != null) { configBuilder.setProxyServer(new ProxyServer(proxyProtocol, proxyHost, proxyPort, proxyPrincipal, proxyPassword)); } configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter()); SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener, providerClass); return sc; } }