From 7b99f8cbfbc5839042d4989ef0ff24b9900c6e20 Mon Sep 17 00:00:00 2001 From: jinyu Date: Mon, 28 Dec 2015 15:11:39 +0800 Subject: [PATCH] fixed #17 --- .../weixin4j/http/factory/HttpComponent4_2.java | 14 +++++++++----- .../dispatcher/WeixinMessageDispatcher.java | 6 +++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/HttpComponent4_2.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/HttpComponent4_2.java index 1cc953b7..7b4336ff 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/HttpComponent4_2.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/factory/HttpComponent4_2.java @@ -3,6 +3,7 @@ package com.foxinmy.weixin4j.http.factory; import java.io.IOException; import java.net.InetSocketAddress; +import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; import org.apache.http.HttpHost; @@ -45,7 +46,7 @@ public class HttpComponent4_2 extends HttpComponent4 { request.getURI()); boolean useSSL = "https".equals(request.getURI().getScheme()); SSLContext sslContext = null; - X509HostnameVerifier hostnameVerifier = null; + HostnameVerifier hostnameVerifier = null; HttpParams params = request.getParams(); if (params != null) { Builder requestConfig = RequestConfig.custom() @@ -62,18 +63,21 @@ public class HttpComponent4_2 extends HttpComponent4 { } uriRequest.setConfig(requestConfig.build()); sslContext = params.getSSLContext(); - hostnameVerifier = new CustomHostnameVerifier( - params.getHostnameVerifier()); + hostnameVerifier = params.getHostnameVerifier(); } if (useSSL) { if (sslContext == null) { sslContext = HttpClientFactory.allowSSLContext(); } + X509HostnameVerifier x509HostnameVerifier = null; if (hostnameVerifier == null) { - hostnameVerifier = SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER; + x509HostnameVerifier = SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER; + } else { + x509HostnameVerifier = new CustomHostnameVerifier( + hostnameVerifier); } httpClient = HttpClients.custom() - .setHostnameVerifier(hostnameVerifier) + .setHostnameVerifier(x509HostnameVerifier) .setSslcontext(sslContext).build(); } addHeaders(request.getHeaders(), uriRequest); diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java index a99118c3..aed10c88 100644 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java +++ b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java @@ -9,10 +9,10 @@ import io.netty.util.internal.logging.InternalLoggerFactory; import java.io.ByteArrayInputStream; import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; +import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -226,7 +226,7 @@ public class WeixinMessageDispatcher { public WeixinMessageHandler[] getMessageHandlers() throws WeixinException { if (this.messageHandlers == null) { if (messageHandlerPackages != null) { - List> messageHandlerClass = new LinkedList>(); + List> messageHandlerClass = new ArrayList>(); for (String packageName : messageHandlerPackages) { messageHandlerClass.addAll(ClassUtil .getClasses(packageName)); @@ -285,7 +285,7 @@ public class WeixinMessageDispatcher { throws WeixinException { if (this.messageInterceptors == null) { if (this.messageInterceptorPackages != null) { - List> messageInterceptorClass = new LinkedList>(); + List> messageInterceptorClass = new ArrayList>(); for (String packageName : messageInterceptorPackages) { messageInterceptorClass.addAll(ClassUtil .getClasses(packageName));