Skip to content

Commit cd87aa8

Browse files
author
kagrawal
committed
Issue : ContainX#1070
Description: 1. Updated Apache httpclient version and corresponding code for IPv6+ https issue. 2. Added support for IgnoreSSLVerification and custom SSLHostnameVerifier.
1 parent 95fa5bd commit cd87aa8

File tree

2 files changed

+47
-20
lines changed

2 files changed

+47
-20
lines changed

connectors/resteasy/pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
1919
<groupId>org.jboss.resteasy</groupId>
2020
<artifactId>resteasy-jaxrs</artifactId>
2121
<version>${resteasy-version}</version>
22+
<exclusions>
23+
<exclusion>
24+
<artifactId>httpclient</artifactId>
25+
<groupId>org.apache.httpcomponents</groupId>
26+
</exclusion>
27+
</exclusions>
2228
</dependency>
2329
<dependency>
2430
<groupId>com.fasterxml.jackson.jaxrs</groupId>
@@ -30,6 +36,11 @@
3036
<artifactId>commons-logging</artifactId>
3137
<version>1.2</version>
3238
</dependency>
39+
<dependency>
40+
<groupId>org.apache.httpcomponents</groupId>
41+
<artifactId>httpclient</artifactId>
42+
<version>4.5.3</version>
43+
</dependency>
3344
</dependencies>
3445

3546
<build>

connectors/resteasy/src/main/java/org/openstack4j/connectors/resteasy/executors/ApacheHttpClientExecutor.java

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package org.openstack4j.connectors.resteasy.executors;
22

3-
import java.net.MalformedURLException;
4-
import java.net.URL;
5-
63
import org.apache.http.HttpHost;
74
import org.apache.http.client.HttpClient;
8-
import org.apache.http.conn.params.ConnRoutePNames;
9-
import org.apache.http.impl.client.DefaultHttpClient;
10-
import org.apache.http.params.BasicHttpParams;
11-
import org.apache.http.params.HttpConnectionParams;
12-
import org.apache.http.params.HttpParams;
5+
import org.apache.http.client.config.RequestConfig;
6+
import org.apache.http.conn.ssl.NoopHostnameVerifier;
7+
import org.apache.http.impl.client.HttpClientBuilder;
8+
import org.apache.http.impl.client.HttpClients;
139
import org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor;
1410
import org.openstack4j.core.transport.Config;
11+
import org.openstack4j.core.transport.UntrustedSSL;
12+
13+
import java.net.MalformedURLException;
14+
import java.net.URL;
1515

1616
/**
1717
* Default Apache HttpClient based Executor
@@ -25,26 +25,42 @@ public class ApacheHttpClientExecutor extends ApacheHttpClient4Executor {
2525
}
2626

2727
public static ApacheHttpClientExecutor create(Config config) {
28-
29-
HttpParams params = new BasicHttpParams();
30-
if (config.getReadTimeout() > 0)
31-
HttpConnectionParams.setSoTimeout(params, config.getReadTimeout());
32-
33-
if (config.getConnectTimeout() > 0)
34-
HttpConnectionParams.setConnectionTimeout(params, config.getConnectTimeout());
35-
36-
HttpClient client = new DefaultHttpClient(params);
37-
28+
29+
RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();
30+
31+
if (config.getReadTimeout() > 0) {
32+
requestConfigBuilder.setConnectionRequestTimeout(config.getReadTimeout());
33+
}
34+
35+
if (config.getConnectTimeout() > 0) {
36+
requestConfigBuilder.setConnectTimeout(config.getConnectTimeout());
37+
}
38+
39+
/*HttpClient client*/
40+
41+
HttpClientBuilder httpClientBuilder = HttpClients.custom();
42+
43+
if (config.isIgnoreSSLVerification()) {
44+
httpClientBuilder.setSSLContext(UntrustedSSL.getSSLContext());
45+
httpClientBuilder.setSSLHostnameVerifier(new NoopHostnameVerifier());
46+
}
47+
48+
if (config.getHostNameVerifier() != null) {
49+
httpClientBuilder.setSSLHostnameVerifier(config.getHostNameVerifier());
50+
}
51+
3852
if (config.getProxy() != null) {
3953
try {
4054
URL url = new URL(config.getProxy().getHost());
4155
HttpHost proxy = new HttpHost(url.getHost(), config.getProxy().getPort(), url.getProtocol());
42-
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
56+
requestConfigBuilder.setProxy(proxy);
4357
} catch (MalformedURLException e) {
4458
e.printStackTrace();
4559
}
4660
}
47-
61+
62+
httpClientBuilder.setDefaultRequestConfig(requestConfigBuilder.build());
63+
HttpClient client = httpClientBuilder.build();
4864
return new ApacheHttpClientExecutor(client);
4965
}
5066

0 commit comments

Comments
 (0)