Skip to content

Commit

Permalink
Merge e7fb1d3 into db17a58
Browse files Browse the repository at this point in the history
  • Loading branch information
ElPicador committed Feb 26, 2018
2 parents db17a58 + e7fb1d3 commit 56ff66f
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.List;
import javax.annotation.Nonnull;
import org.apache.http.HttpHost;
import org.apache.http.client.CredentialsProvider;

public final class ApacheAPIClientBuilder extends APIClientBuilder {

Expand Down Expand Up @@ -104,6 +105,20 @@ public ApacheAPIClientBuilder setProxyPreferredAuthSchemes(
return this;
}

/**
* Set the CredentialsProvider for the underlying Apache HTTP Client
*
* <p>See https://hc.apache.org/httpcomponents-client-ga/examples.html for examples
*
* @param defaultCredentialsProvider
* @return this
*/
public ApacheAPIClientBuilder setDefaultCredentialsProvider(
CredentialsProvider defaultCredentialsProvider) {
httpClientConfiguration.setDefaultCredentialsProvider(defaultCredentialsProvider);
return this;
}

@Override
protected APIClient build(@Nonnull APIClientConfiguration configuration) {
return new APIClient(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;

Expand Down Expand Up @@ -59,15 +60,21 @@ public ApacheHttpClient(
httpClientConfiguration.getProxyPreferredAuthSchemes());
}

this.internal =
HttpClientBuilder httpClientBuilder =
HttpClients.custom()
.disableAutomaticRetries()
.setDefaultHeaders(httpHeaders)
.setDnsResolver(new TimeoutableHostNameResolver(configuration.getConnectTimeout()))
.setDefaultRequestConfig(requestConfigBuilder.build())
.setMaxConnTotal(configuration.getMaxConnTotal())
.build();
.setMaxConnTotal(configuration.getMaxConnTotal());

if (httpClientConfiguration.getDefaultCredentialsProvider() != null) {
httpClientBuilder =
httpClientBuilder.setDefaultCredentialsProvider(
httpClientConfiguration.getDefaultCredentialsProvider());
}

this.internal = httpClientBuilder.build();
this.objectMapper = configuration.getObjectMapper();
this.queryHosts = configuration.getQueryHosts();
this.buildHosts = configuration.getBuildHosts();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

import java.util.Collection;
import org.apache.http.HttpHost;
import org.apache.http.client.CredentialsProvider;

public class ApacheHttpClientConfiguration {

private HttpHost proxy;
private Collection<String> proxyPreferredAuthSchemes;
private CredentialsProvider defaultCredentialsProvider;

public ApacheHttpClientConfiguration setProxy(HttpHost proxy) {
this.proxy = proxy;
Expand All @@ -19,11 +21,21 @@ public ApacheHttpClientConfiguration setProxyPreferredAuthSchemes(
return this;
}

public ApacheHttpClientConfiguration setDefaultCredentialsProvider(
CredentialsProvider defaultCredentialsProvider) {
this.defaultCredentialsProvider = defaultCredentialsProvider;
return this;
}

public HttpHost getProxy() {
return proxy;
}

public Collection<String> getProxyPreferredAuthSchemes() {
return proxyPreferredAuthSchemes;
}

public CredentialsProvider getDefaultCredentialsProvider() {
return defaultCredentialsProvider;
}
}

0 comments on commit 56ff66f

Please sign in to comment.