栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

post请求https安全证书问题2.0

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

post请求https安全证书问题2.0

我发现你们阅读csdn之后居然不去看我有道云笔记,所以我把他们cv过来了!!!

1.绕过安全证书

自己写一个RestTemplate

给这个Bean取一个别名(为了和原有的restTemplate区分开)

@Configuration
public class RestTemplateObdConfig {

    private static boolean  ignoreSSL = true;
    //给Bean取一个别名

    @Bean
    public RestTemplate obdRestTemplate(){
        RestTemplate restTemplate = new RestTemplate();
        if (ignoreSSL) {//ignoreSSL为true时,绕过证书
            HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
            factory.setConnectionRequestTimeout(300000);
            factory.setConnectTimeout(300000);
            factory.setReadTimeout(300000);
            // https
            CloseableHttpClient httpClient = getHttpsClient();
            factory.setHttpClient(httpClient);
            restTemplate = new RestTemplate(factory);
        }
//        reInitMessageConverter(restTemplate);
        return restTemplate;
    }

    public static CloseableHttpClient getHttpsClient() {

        CloseableHttpClient httpClient;
        if (ignoreSSL) {//ignoreSSL为true时,绕过证书
            SSLContext sslContext = null;
            try {
                sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() {
                    @Override
                    public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
                        return true;
                    }
                }).build();
            } catch (NoSuchAlgorithmException e) {
                e.getStackTrace();
            } catch (KeyManagementException e) {
                e.getStackTrace();
            } catch (KeyStoreException e) {
                e.getStackTrace();
            }
            httpClient = HttpClients.custom().setSSLContext(sslContext).
                    setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
        } else {
            httpClient = HttpClients.createDefault();
        }
        return httpClient;
    }
}

2在业务层调用的时候指定名字

@Resource(name = "obdRestTemplate")

private RestTemplate restTemplate;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631279.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号