FeignClient請(qǐng)求Https:SSL證書(shū)問(wèn)題

import feign.Client;

import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;

import org.springframework.cloud.netflix.feign.ribbon.CachingSpringLoadBalancerFactory;

import org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient;

import org.springframework.cloud.netflix.ribbon.SpringClientFactory;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import javax.net.ssl.*;

import java.security.KeyManagementException;

import java.security.NoSuchAlgorithmException;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

@Configuration

public class FeignHttpsConfig {

@Bean

@ConditionalOnMissingBean

? ? public Client feignClient(CachingSpringLoadBalancerFactory cachingFactory,

SpringClientFactory clientFactory)throws NoSuchAlgorithmException, KeyManagementException {

SSLContext ctx = SSLContext.getInstance("TLSv1.2");// "SSL"

? ? ? ? X509TrustManager tm =new X509TrustManager() {

@Override

? ? ? ? ? ? public void checkClientTrusted(X509Certificate[] x509Certificates, String s)throws CertificateException {

}

@Override

? ? ? ? ? ? public void checkServerTrusted(X509Certificate[] x509Certificates, String s)throws CertificateException {

}

@Override

? ? ? ? ? ? public X509Certificate[] getAcceptedIssuers() {

return new X509Certificate[0];

}

};

ctx.init(null,new TrustManager[]{tm},null);

return new LoadBalancerFeignClient(new Client.Default(ctx.getSocketFactory(),

new HostnameVerifier() {

public boolean verify(String hostname, SSLSession sslSession) {

return true;

}

}),

cachingFactory, clientFactory);

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容