sslcontext的bug
This commit is contained in:
parent
12367d63c6
commit
22bb2ffde8
@ -92,6 +92,8 @@ public class HttpComponent3 extends AbstractHttpClient {
|
||||
} else {
|
||||
httpMethod.setURI(uri);
|
||||
}
|
||||
boolean useSSL = "https".equals(uri.getScheme());
|
||||
SSLContext sslContext = null;
|
||||
HttpParams params = request.getParams();
|
||||
if (params != null) {
|
||||
Proxy proxy = params.getProxy();
|
||||
@ -101,12 +103,9 @@ public class HttpComponent3 extends AbstractHttpClient {
|
||||
httpClient.getHostConfiguration().setProxy(
|
||||
socketAddress.getHostName(),
|
||||
socketAddress.getPort());
|
||||
useSSL = false;
|
||||
}
|
||||
SSLContext sslContext = params.getSSLContext();
|
||||
if (sslContext != null) {
|
||||
Protocol.registerProtocol("https", new Protocol("https",
|
||||
new SSLProtocolSocketFactory(sslContext), 443));
|
||||
}
|
||||
sslContext = params.getSSLContext();
|
||||
httpClient.getHttpConnectionManager().getParams()
|
||||
.setConnectionTimeout(params.getConnectTimeout());
|
||||
httpClient.getHttpConnectionManager().getParams()
|
||||
@ -115,6 +114,13 @@ public class HttpComponent3 extends AbstractHttpClient {
|
||||
httpMethod.getParams().setSoTimeout(params.getSocketTimeout());
|
||||
httpMethod.getParams().setContentCharset(Consts.UTF_8.name());
|
||||
}
|
||||
if (useSSL) {
|
||||
if (sslContext == null) {
|
||||
sslContext = HttpClientFactory.allowSSLContext();
|
||||
}
|
||||
Protocol.registerProtocol("https", new Protocol("https",
|
||||
new SSLProtocolSocketFactory(sslContext), 443));
|
||||
}
|
||||
com.foxinmy.weixin4j.http.HttpHeaders headers = request
|
||||
.getHeaders();
|
||||
if (headers == null) {
|
||||
|
||||
@ -3,6 +3,8 @@ package com.foxinmy.weixin4j.http.factory;
|
||||
import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
|
||||
import org.apache.http.HttpHost;
|
||||
import org.apache.http.client.methods.HttpRequestBase;
|
||||
import org.apache.http.conn.params.ConnRoutePNames;
|
||||
@ -43,6 +45,9 @@ public class HttpComponent4_1 extends HttpComponent4 {
|
||||
try {
|
||||
HttpRequestBase uriRequest = methodMap.get(request.getMethod());
|
||||
uriRequest.setURI(request.getURI());
|
||||
boolean useSSL = "https".equals(request.getURI().getScheme());
|
||||
SSLContext sslContext = null;
|
||||
X509HostnameVerifier hostnameVerifier = null;
|
||||
HttpParams params = request.getParams();
|
||||
if (params != null) {
|
||||
if (params.getProxy() != null) {
|
||||
@ -52,6 +57,7 @@ public class HttpComponent4_1 extends HttpComponent4 {
|
||||
socketAddress.getPort());
|
||||
uriRequest.getParams().setParameter(
|
||||
ConnRoutePNames.DEFAULT_PROXY, proxy);
|
||||
useSSL = false;
|
||||
}
|
||||
uriRequest.getParams().setIntParameter(
|
||||
CoreConnectionPNames.SOCKET_BUFFER_SIZE,
|
||||
@ -68,19 +74,23 @@ public class HttpComponent4_1 extends HttpComponent4 {
|
||||
HttpHeaders.CONTENT_ENCODING, Consts.UTF_8);
|
||||
uriRequest.getParams().setParameter(HttpHeaders.ACCEPT_CHARSET,
|
||||
Consts.UTF_8);
|
||||
if (params.getSSLContext() != null) {
|
||||
SSLSocketFactory socketFactory = new SSLSocketFactory(
|
||||
params.getSSLContext());
|
||||
X509HostnameVerifier hostnameVerifier = SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
|
||||
if (params.getHostnameVerifier() != null) {
|
||||
hostnameVerifier = new CustomHostnameVerifier(
|
||||
params.getHostnameVerifier());
|
||||
}
|
||||
socketFactory.setHostnameVerifier(hostnameVerifier);
|
||||
Scheme scheme = new Scheme("https", socketFactory, 443);
|
||||
httpClient.getConnectionManager().getSchemeRegistry()
|
||||
.register(scheme);
|
||||
sslContext = params.getSSLContext();
|
||||
hostnameVerifier = new CustomHostnameVerifier(
|
||||
params.getHostnameVerifier());
|
||||
}
|
||||
if (useSSL) {
|
||||
if (sslContext == null) {
|
||||
sslContext = HttpClientFactory.allowSSLContext();
|
||||
}
|
||||
if (hostnameVerifier == null) {
|
||||
hostnameVerifier = SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
|
||||
}
|
||||
SSLSocketFactory socketFactory = new SSLSocketFactory(
|
||||
sslContext);
|
||||
socketFactory.setHostnameVerifier(hostnameVerifier);
|
||||
Scheme scheme = new Scheme("https", socketFactory, 443);
|
||||
httpClient.getConnectionManager().getSchemeRegistry()
|
||||
.register(scheme);
|
||||
}
|
||||
addHeaders(request.getHeaders(), uriRequest);
|
||||
addEntity(request.getEntity(), uriRequest);
|
||||
|
||||
@ -3,6 +3,8 @@ package com.foxinmy.weixin4j.http.factory;
|
||||
import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
|
||||
import org.apache.http.HttpHost;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.config.RequestConfig.Builder;
|
||||
@ -41,6 +43,9 @@ public class HttpComponent4_2 extends HttpComponent4 {
|
||||
try {
|
||||
HttpRequestBase uriRequest = methodMap.get(request.getMethod());
|
||||
uriRequest.setURI(request.getURI());
|
||||
boolean useSSL = "https".equals(request.getURI().getScheme());
|
||||
SSLContext sslContext = null;
|
||||
X509HostnameVerifier hostnameVerifier = null;
|
||||
HttpParams params = request.getParams();
|
||||
if (params != null) {
|
||||
Builder requestConfig = RequestConfig.custom()
|
||||
@ -53,18 +58,23 @@ public class HttpComponent4_2 extends HttpComponent4 {
|
||||
HttpHost proxy = new HttpHost(socketAddress.getHostName(),
|
||||
socketAddress.getPort());
|
||||
requestConfig.setProxy(proxy);
|
||||
}
|
||||
if (params.getSSLContext() != null) {
|
||||
X509HostnameVerifier hostnameVerifier = SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
|
||||
if (params.getHostnameVerifier() != null) {
|
||||
hostnameVerifier = new CustomHostnameVerifier(
|
||||
params.getHostnameVerifier());
|
||||
}
|
||||
httpClient = HttpClients.custom()
|
||||
.setHostnameVerifier(hostnameVerifier)
|
||||
.setSslcontext(params.getSSLContext()).build();
|
||||
useSSL = false;
|
||||
}
|
||||
uriRequest.setConfig(requestConfig.build());
|
||||
sslContext = params.getSSLContext();
|
||||
hostnameVerifier = new CustomHostnameVerifier(
|
||||
params.getHostnameVerifier());
|
||||
}
|
||||
if (useSSL) {
|
||||
if (sslContext == null) {
|
||||
sslContext = HttpClientFactory.allowSSLContext();
|
||||
}
|
||||
if (hostnameVerifier == null) {
|
||||
hostnameVerifier = SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
|
||||
}
|
||||
httpClient = HttpClients.custom()
|
||||
.setHostnameVerifier(hostnameVerifier)
|
||||
.setSslcontext(sslContext).build();
|
||||
}
|
||||
addHeaders(request.getHeaders(), uriRequest);
|
||||
addEntity(request.getEntity(), uriRequest);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user