feignClient如果请求的是https域名地址,jvm信任库未添加证书的话可能会提示证书主机名不匹配问题
添加以下配置可忽略
@Slf4j
public class FeignSSLTrustAllConfig {@Beanpublic Client feignClient() {return new Client.Default(getSSLSocketFactory(), new NoopHostnameVerifier());}private SSLSocketFactory getSSLSocketFactory() {try {SSLContext sslContext = SSLContexts.custom().useTLS().build();sslContext.init(null, new TrustManager[]{new X509TrustManager() {@Overridepublic X509Certificate[] getAcceptedIssuers() {return null;}@Overridepublic void checkClientTrusted(X509Certificate[] certs, String authType) {}@Overridepublic void checkServerTrusted(X509Certificate[] certs, String authType) {}}}, null);return sslContext.getSocketFactory();} catch (Exception e) {log.error("FeignSSLTrustAllConfig getSSLSocketFactory error: {}", e.getMessage());throw new RuntimeException(e);}}
}
然后在需要忽略的FeignClient上添加配置
@FeignClient(name = "xxx", url = "xxx", configuration = FeignSSLTrustAllConfig.class)