You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2013/07/02 16:32:48 UTC
svn commit: r1498955 -
/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java
Author: olegk
Date: Tue Jul 2 14:32:47 2013
New Revision: 1498955
URL: http://svn.apache.org/r1498955
Log:
HTTPCLIENT-1379: added X509HostnameVerifier setter to HttpClientBuilder
Modified:
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java (contents, props changed)
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java?rev=1498955&r1=1498954&r2=1498955&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java Tue Jul 2 14:32:47 2013
@@ -74,7 +74,9 @@ import org.apache.http.conn.routing.Http
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
import org.apache.http.conn.socket.PlainSocketFactory;
+import org.apache.http.conn.ssl.SSLContexts;
import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.conn.ssl.X509HostnameVerifier;
import org.apache.http.cookie.CookieSpecProvider;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
import org.apache.http.impl.NoConnectionReuseStrategy;
@@ -107,6 +109,7 @@ import org.apache.http.protocol.HttpRequ
import org.apache.http.protocol.RequestContent;
import org.apache.http.protocol.RequestTargetHost;
import org.apache.http.protocol.RequestUserAgent;
+import org.apache.http.util.TextUtils;
import org.apache.http.util.VersionInfo;
/**
@@ -141,6 +144,7 @@ import org.apache.http.util.VersionInfo;
public class HttpClientBuilder {
private HttpRequestExecutor requestExec;
+ private X509HostnameVerifier hostnameVerifier;
private LayeredConnectionSocketFactory sslSocketFactory;
private SSLContext sslcontext;
private HttpClientConnectionManager connManager;
@@ -200,6 +204,11 @@ public class HttpClientBuilder {
return this;
}
+ public final HttpClientBuilder setHostnameVerifier(final X509HostnameVerifier hostnameVerifier) {
+ this.hostnameVerifier = hostnameVerifier;
+ return this;
+ }
+
public final HttpClientBuilder setSSLSocketFactory(
final LayeredConnectionSocketFactory sslSocketFactory) {
this.sslSocketFactory = sslSocketFactory;
@@ -449,6 +458,12 @@ public class HttpClientBuilder {
closeables.add(closeable);
}
+ private static String[] split(final String s) {
+ if (TextUtils.isBlank(s)) {
+ return null;
+ }
+ return s.split(" *, *");
+ }
public CloseableHttpClient build() {
// Create main request executor
@@ -461,12 +476,18 @@ public class HttpClientBuilder {
LayeredConnectionSocketFactory sslSocketFactory = this.sslSocketFactory;
if (sslSocketFactory == null) {
if (sslcontext != null) {
- sslSocketFactory = new SSLSocketFactory(sslcontext);
+ sslSocketFactory = new SSLSocketFactory(sslcontext, hostnameVerifier);
} else {
if (systemProperties) {
- sslSocketFactory = SSLSocketFactory.getSystemSocketFactory();
+ sslSocketFactory = new SSLSocketFactory(
+ (javax.net.ssl.SSLSocketFactory) javax.net.ssl.SSLSocketFactory.getDefault(),
+ split(System.getProperty("https.protocols")),
+ split(System.getProperty("https.cipherSuites")),
+ hostnameVerifier);
} else {
- sslSocketFactory = SSLSocketFactory.getSocketFactory();
+ sslSocketFactory = new SSLSocketFactory(
+ SSLContexts.createDefault(),
+ hostnameVerifier);
}
}
}
Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java
------------------------------------------------------------------------------
svn:executable = *