New file |
| | |
| | | package com.dy.pipIrrSell.config; |
| | | |
| | | import com.dy.pipIrrGlobal.cert.WxCertUtil; |
| | | import com.dy.pipIrrSell.wechatpay.PayInfo; |
| | | import okhttp3.OkHttpClient; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.core.io.ResourceLoader; |
| | | import org.springframework.http.client.ClientHttpRequestFactory; |
| | | import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; |
| | | |
| | | import javax.net.ssl.KeyManagerFactory; |
| | | import javax.net.ssl.SSLContext; |
| | | import javax.net.ssl.TrustManagerFactory; |
| | | import javax.net.ssl.X509TrustManager; |
| | | import java.io.InputStream; |
| | | import java.security.KeyStore; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-03-06 11:44 |
| | | * @LastEditTime 2024-03-06 11:44 |
| | | * @Description |
| | | */ |
| | | |
| | | @Configuration |
| | | public class RestTemplateWechatCertConfig { |
| | | |
| | | String mchid = PayInfo.mchid; |
| | | @Autowired |
| | | private ResourceLoader resourceLoader; |
| | | |
| | | @Bean |
| | | @ConfigurationProperties(prefix = "org.liurb.core.rest-template.config.connection") |
| | | public ClientHttpRequestFactory wechatHttpRequestFactory() throws Exception { |
| | | |
| | | KeyStore keyStore = KeyStore.getInstance("PKCS12"); |
| | | InputStream in = WxCertUtil.getCert_p12InputStream(resourceLoader); |
| | | keyStore.load(in, mchid.toCharArray()); |
| | | |
| | | KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); |
| | | keyManagerFactory.init(keyStore, mchid.toCharArray()); |
| | | |
| | | SSLContext context = SSLContext.getInstance("TLS"); |
| | | context.init(keyManagerFactory.getKeyManagers(), null, null); |
| | | |
| | | OkHttpClient okHttpClient = new OkHttpClient.Builder() |
| | | .sslSocketFactory(context.getSocketFactory(), getDefaultX509TrustManager()) |
| | | .build(); |
| | | |
| | | return new OkHttp3ClientHttpRequestFactory(okHttpClient); |
| | | } |
| | | |
| | | private static X509TrustManager getDefaultX509TrustManager() throws Exception { |
| | | TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); |
| | | factory.init((KeyStore) null); |
| | | return (X509TrustManager) factory.getTrustManagers()[0]; |
| | | } |
| | | } |