From 60ebb5495819e4ea9b510c7e3ca611245d74a726 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sun, 2 Jun 2019 12:58:43 +0800 Subject: [PATCH] =?UTF-8?q?#1059=20=E5=BE=AE=E4=BF=A1=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E8=AF=81=E4=B9=A6=E5=9C=B0=E5=9D=80=E5=8F=82=E6=95=B0keyPath?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=BD=BF=E7=94=A8=E7=BD=91=E7=BB=9C=E5=9C=B0?= =?UTF-8?q?=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binarywang/wxpay/config/WxPayConfig.java | 25 +++++++++++-------- .../wxpay/config/WxPayConfigTest.java | 14 ++++++----- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java index f8d915f8..93b3b700 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java @@ -1,19 +1,15 @@ package com.github.binarywang.wxpay.config; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.KeyStore; -import javax.net.ssl.SSLContext; - +import com.github.binarywang.wxpay.exception.WxPayException; +import lombok.Data; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.ssl.SSLContexts; -import com.github.binarywang.wxpay.exception.WxPayException; -import lombok.Data; +import javax.net.ssl.SSLContext; +import java.io.*; +import java.net.URL; +import java.security.KeyStore; /** * 微信支付配置 @@ -131,6 +127,15 @@ public class WxPayConfig { if (inputStream == null) { throw new WxPayException(fileNotFoundMsg); } + } else if (this.getKeyPath().startsWith("http://") || this.getKeyPath().startsWith("https://")) { + try { + inputStream = new URL(this.keyPath).openStream(); + if (inputStream == null) { + throw new WxPayException(fileNotFoundMsg); + } + } catch (IOException e) { + throw new WxPayException(fileNotFoundMsg, e); + } } else { try { File file = new File(this.getKeyPath()); diff --git a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/config/WxPayConfigTest.java b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/config/WxPayConfigTest.java index 3edc2c32..9d3c13da 100644 --- a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/config/WxPayConfigTest.java +++ b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/config/WxPayConfigTest.java @@ -14,16 +14,18 @@ import static org.testng.Assert.*; public class WxPayConfigTest { private WxPayConfig payConfig = new WxPayConfig(); - /** - * Test init ssl context. - * - * @throws Exception the exception - */ @Test - public void testInitSSLContext() throws Exception { + public void testInitSSLContext_classpath() throws Exception { payConfig.setMchId("123"); payConfig.setKeyPath("classpath:/abc.p12"); payConfig.initSSLContext(); } + @Test + public void testInitSSLContext_http() throws Exception { + payConfig.setMchId("123"); + payConfig.setKeyPath("https://www.baidu.com"); + payConfig.initSSLContext(); + } + }