当前位置: 首页 > 知识库问答 >
问题:

带有自定义CloseableHttpClient的RestTemplateBuilder仍然抛出SSLPeerUnverfiedException

司寇星海
2023-03-14

我必须通过连接到具有自签名证书的测试服务器来测试应用程序。为了实现这一点,我做了以下几点:

  1. 我正在使用Spring framework中的RestTemplateBuilder创建RestTemplate
  2. 我传入了自定义配置的HttpClient,它应该忽略主机名验证

尽管有定制的http客户端,我仍然得到SSLPeerUnverifiedException。有线索吗?

负责配置RestTemplate的部分代码:

public class RestTemplateForBasicAuth {
  private RestTemplateBuilder restTemplateBuilder;

  public RestTemplateForBasicAuth(RestTemplateBuilder restTemplateBuilder) {
    this.restTemplateBuilder = restTemplateBuilder;
  }

  public RestTemplate getRestTemplate(String host) {

    // Initialize http client that does not complain on self signed certificate
    CloseableHttpClient httpClient = HttpClients.custom().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
    HttpHost httpHost = new HttpHost(host);
    final AuthHttpComponentsClientHttpRequestFactory requestFactory = new AuthHttpComponentsClientHttpRequestFactory(httpClient, httpHost, "user", "xxx");
    restTemplateBuilder.requestFactory(requestFactory);
    MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
    restTemplateBuilder.messageConverters(messageConverter);
    return restTemplateBuilder.build();
  }
}

共有1个答案

夹谷岳
2023-03-14

您是否使用了Spring(Boot)中的正确注释?

您必须使用@Configuration注释类,并且至少如果它是Spring Boot Application,则必须使用@Bean注释方法getRestTemboard(...)

 类似资料:
  • 我想有一个gradle项目,使用自定义任务创建一个jar(不使用任何gradle java插件)。什么是正确的方法来构建build.gradle,以便我可以在我的Android应用程序的gradle项目中依赖它? 更多详情: 目前,我的jar文件是在我从gradle调用的cmake项目中创建的。我想要一个合适的体形。调用我的cmake命令的gradle文件然后使用生成的jar作为工件。然后,我希望

  • 我尝试开发一个小android应用程序,并显示一个对话框警报,其中只包含一个edittext,以填充自定义内容作为下一个链接 创建自定义布局我有这个代码,但它不工作 } 但是代码循环运行 我不明白 在我班上的主要活动 我有这个密码 这是我的风格。xml 我的logcat是下一个 谢谢你的帮助,

  • "CATCH"应该严格地在"扔"之后叫吗?" 例1: 错误: 找不到方法“接收器”:没有方法缓存,也没有^在/tmp/739536251/main块中查找_方法。pl6第11行 例2: 无误

  • 问题内容: 我正在使用.NET的HttpClient向WebAPI发出请求,该WebAPI返回一些JSON数据,该数据需要在客户端进行一些自定义反序列化。为此,我已经完成了自己的工作,但是我不知道如何让该方法处理转换器的存在。 通过使用读取响应,然后将该字符串传递给,我已经解决了我的问题,但是似乎应该有一个更优雅的解决方案。 这是我的代码: 这是我所能做到的最好的,还是有一些更优雅的方法? 如果需

  • 我们正在使用spring和Spring-Security-3.2。最近,我们向RESTAPI添加了注释@preauthorize(以前是基于URL的)。 我们已经有了用-@ControllerAdvice和自定义的PermissionEvaluator注释的全局异常处理程序,除了错误消息之外,其他一切都正常工作。 是否可能抛出一个包含权限名称的异常,所以最终的错误消息应该是“Access Is d

  • 我尝试用自定义控制器制作一个自定义组件。自定义组件已经显示在应用程序上,但我未能向其添加属性。 项目结构: null 布尔马尔科 完全错误: 原因:java.lang.nullPointerException:无法调用“javafx.scene.image.imageeview.setimage(javafx.scene.image.image)”,因为“controller.topbarbtn.