This commit is contained in:
jinyu 2015-12-28 15:11:39 +08:00
parent 95c2e97d4e
commit 7b99f8cbfb
2 changed files with 12 additions and 8 deletions

View File

@ -3,6 +3,7 @@ package com.foxinmy.weixin4j.http.factory;
import java.io.IOException; import java.io.IOException;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import org.apache.http.HttpHost; import org.apache.http.HttpHost;
@ -45,7 +46,7 @@ public class HttpComponent4_2 extends HttpComponent4 {
request.getURI()); request.getURI());
boolean useSSL = "https".equals(request.getURI().getScheme()); boolean useSSL = "https".equals(request.getURI().getScheme());
SSLContext sslContext = null; SSLContext sslContext = null;
X509HostnameVerifier hostnameVerifier = null; HostnameVerifier hostnameVerifier = null;
HttpParams params = request.getParams(); HttpParams params = request.getParams();
if (params != null) { if (params != null) {
Builder requestConfig = RequestConfig.custom() Builder requestConfig = RequestConfig.custom()
@ -62,18 +63,21 @@ public class HttpComponent4_2 extends HttpComponent4 {
} }
uriRequest.setConfig(requestConfig.build()); uriRequest.setConfig(requestConfig.build());
sslContext = params.getSSLContext(); sslContext = params.getSSLContext();
hostnameVerifier = new CustomHostnameVerifier( hostnameVerifier = params.getHostnameVerifier();
params.getHostnameVerifier());
} }
if (useSSL) { if (useSSL) {
if (sslContext == null) { if (sslContext == null) {
sslContext = HttpClientFactory.allowSSLContext(); sslContext = HttpClientFactory.allowSSLContext();
} }
X509HostnameVerifier x509HostnameVerifier = null;
if (hostnameVerifier == null) { if (hostnameVerifier == null) {
hostnameVerifier = SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER; x509HostnameVerifier = SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
} else {
x509HostnameVerifier = new CustomHostnameVerifier(
hostnameVerifier);
} }
httpClient = HttpClients.custom() httpClient = HttpClients.custom()
.setHostnameVerifier(hostnameVerifier) .setHostnameVerifier(x509HostnameVerifier)
.setSslcontext(sslContext).build(); .setSslcontext(sslContext).build();
} }
addHeaders(request.getHeaders(), uriRequest); addHeaders(request.getHeaders(), uriRequest);

View File

@ -9,10 +9,10 @@ import io.netty.util.internal.logging.InternalLoggerFactory;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -226,7 +226,7 @@ public class WeixinMessageDispatcher {
public WeixinMessageHandler[] getMessageHandlers() throws WeixinException { public WeixinMessageHandler[] getMessageHandlers() throws WeixinException {
if (this.messageHandlers == null) { if (this.messageHandlers == null) {
if (messageHandlerPackages != null) { if (messageHandlerPackages != null) {
List<Class<?>> messageHandlerClass = new LinkedList<Class<?>>(); List<Class<?>> messageHandlerClass = new ArrayList<Class<?>>();
for (String packageName : messageHandlerPackages) { for (String packageName : messageHandlerPackages) {
messageHandlerClass.addAll(ClassUtil messageHandlerClass.addAll(ClassUtil
.getClasses(packageName)); .getClasses(packageName));
@ -285,7 +285,7 @@ public class WeixinMessageDispatcher {
throws WeixinException { throws WeixinException {
if (this.messageInterceptors == null) { if (this.messageInterceptors == null) {
if (this.messageInterceptorPackages != null) { if (this.messageInterceptorPackages != null) {
List<Class<?>> messageInterceptorClass = new LinkedList<Class<?>>(); List<Class<?>> messageInterceptorClass = new ArrayList<Class<?>>();
for (String packageName : messageInterceptorPackages) { for (String packageName : messageInterceptorPackages) {
messageInterceptorClass.addAll(ClassUtil messageInterceptorClass.addAll(ClassUtil
.getClasses(packageName)); .getClasses(packageName));