`

RestTemplate忽略https证书认证

阅读更多

 

public static RestTemplate buildRestTemplate() {

    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;
}
分享到:
评论

相关推荐

    RestTemplate如何通过HTTP Basic Auth认证.docx

    RestTemplate restTemplate = new RestTemplate(); List<ClientHttpRequestInterceptor> interceptors = new ArrayList(); interceptors.add(new BasicAuthInterceptor("admin", "adminpwd")); restTemplate....

    使用httpclient方式和RestTemplate方式调用http及https接口

    在处理HTTPS请求时,两者都需要配置信任的证书或者禁用SSL验证(不推荐在生产环境)。HttpClient可以使用SSLContext和KeyManagerFactory来设置,而RestTemplate可以通过配置HttpComponentsClientHttpRequestFactory...

    java实现读取证书访问https接口

    在Java编程中,访问HTTPS接口通常涉及到网络通信和安全证书的处理。HTTPS协议是HTTP(超文本传输协议)与SSL/TLS(安全套接层/传输层安全)的结合,用于提供加密通信和身份验证。当需要从一个HTTPS服务器获取数据时...

    java17 https 忽略ssl认证, httpclient5 ,springboot3.2.7 脚手架

    springboot3.2.7 基于java17 ,测试https 接口,基于 RestTemplate 实现

    RestTemplate实现服务间调用demo案例

    6. **异常处理**:在实际开发中,我们需要处理可能出现的网络、超时、认证失败等异常。可以通过全局异常处理器或者自定义拦截器来捕获和处理这些异常。 7. **安全考虑**:在服务间通信中,安全问题不容忽视。可以...

    SpringBoot代码示例,结合Swagger、MyBatis Plus、RestTemplate等技术,是学习微服务的基础demo示例

    该示例结合Swagger生成在线API,MyBatis Plus快速分页查询、RestTemplate实现远程访问服务端接口等基于SpringBoot框架的demo示例,对大家学习SpringCloud打下良好基础

    使用RestTemplate进行feignclient调用

    然而,有时我们可能需要在不使用 Feign 注解的情况下,利用 RestTemplate 来实现类似的功能。本文将深入探讨如何使用 RestTemplate 进行 FeignClient 调用。 首先,让我们了解什么是 RestTemplate。RestTemplate 是...

    RestTemplate例子

    - 请求头设置:可以添加自定义请求头,如认证信息。 - 自定义拦截器:可以添加拦截器来处理请求前后的逻辑,如添加日志、超时控制等。 - 重试机制:通过`RetryTemplate`配合`RestTemplate`实现请求重试。 - 超时...

    Spring RestTemplate

    Spring 3.0 RestTemplate

    RestTemplate如何在Spring或非Spring环境下使用.docx

    RestTemplate restTemplate = new RestTemplate(); String url = "http://jsonplaceholder.typicode.com/posts/1"; String str = restTemplate.getForObject(url, String.class); System.out.println(str); } ``...

    springRestTemplate

    在 Spring Boot 中,由于其内置的自动配置特性,使用 RestTemplate 更加方便。让我们深入探讨一下 RestTemplate 的核心概念、功能以及如何在实际应用中进行设置和使用。 1. **什么是 RestTemplate?** RestTemplate...

    https请求封装类 双向认证

    https请求封装类 双向认证 httpclient

    RestTemplate的使用及需要注意的地方

    4. **安全性**:`RestTemplate`不处理认证和授权。如果需要访问受保护的资源,可能需要配置`BasicAuthorizationInterceptor`或使用OAuth2。 5. **线程安全**:`RestTemplate`不是线程安全的,因此在多线程环境中,...

    精讲RestTemplate自定义请求失败异常处理.docx

    RestTemplate restTemplate = new RestTemplate(); restTemplate.setErrorHandler(new MyRestErrorHandler()); ``` 这样,当请求失败时,我们的`handleError`方法会被调用,允许我们捕获并处理异常,而不是让程序...

    RestTemplate请求失败自动重试机制.docx

    "RestTemplate请求失败自动重试机制"就是一个解决这个问题的策略。在上一节中,我们学习了如何自定义RestTemplate的异常处理,但那并不适用于自动重试。本节我们将探讨如何利用Spring Retry库来实现RestTemplate的...

    SpringBoot系列之RestTemplate使用示例

    SpringBoot系列之RestTemplate使用示例,博主之前经常对接一些接口,所以发现写一些http请求比较麻烦,学习springboot的过程知道可以用 RestTemplate来做http请求,RestTemplate 是 Spring Framework 框架封装的基于...

    RestTemplate重试机制源码

    当某些接口超时、返回的数据有问题时需要对接口进行重试,但是有的接口需要重试三次,有的需要重试两次,有的不需要重试;有的返回连接超时才重试,...各种各样的场景,该源码实现了一个自定义定制化的重试RestTemplate

    RestTemplate的GET方法详解.docx

    - **使用占位符传参**:`getForObject()`支持使用占位符,例如`restTemplate.getForObject(url, PostDTO.class, "posts", 1)`,这样可以根据业务需求动态构造URL。 4. JSONPlaceholder作为测试工具 ...

    精讲RestTemplate文件上传下载与大文件流式下载.docx

    根据提供的文档标题、描述、标签以及部分内容,本文将详细介绍如何使用Spring框架中的`RestTemplate`进行文件上传、普通文件下载及大文件的流式下载。 ### 一、文件上传 在进行文件上传时,通常涉及到以下几个步骤...

Global site tag (gtag.js) - Google Analytics