当前位置: 首页 > news >正文

大气的企业网站设计WordPress说说心情

大气的企业网站设计,WordPress说说心情,宁波专业网站公司,爱奇艺做任务领vip网站本文将展示如何配置Apache HttpClient 4和5以支持“接受所有”SSL。 目标很简单——访问没有有效证书的HTTPS URL。 SSLPeerUnverifiedException 在未配置SSL的情况下#xff0c;尝试消费一个HTTPS URL时会遇到以下测试失败#xff1a; Test void whenHttpsUrlIsConsumed…本文将展示如何配置Apache HttpClient 4和5以支持“接受所有”SSL。 目标很简单——访问没有有效证书的HTTPS URL。 SSLPeerUnverifiedException 在未配置SSL的情况下尝试消费一个HTTPS URL时会遇到以下测试失败 Test void whenHttpsUrlIsConsumed_thenException() {String urlOverHttps https://localhost:8082/httpclient-simple;HttpGet getMethod new HttpGet(urlOverHttps);assertThrows(SSLPeerUnverifiedException.class, () - {CloseableHttpClient httpClient HttpClients.createDefault();HttpResponse response httpClient.execute(getMethod, new CustomHttpClientResponseHandler());assertThat(response.getCode(), equalTo(200));}); }具体的失败信息是 javax.net.ssl.SSLPeerUnverifiedException: peer not authenticatedat sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:397)at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:126)...当无法为URL建立有效的信任链时就会抛出javax.net.ssl.SSLPeerUnverifiedException异常。 配置SSL - 接受所有HttpClient 5 现在让我们配置HTTP客户端以信任所有证书链无论其有效性如何 Test void givenAcceptingAllCertificates_whenHttpsUrlIsConsumed_thenOk() throws GeneralSecurityException, IOException {final HttpGet getMethod new HttpGet(HOST_WITH_SSL);final TrustStrategy acceptingTrustStrategy (cert, authType) - true;final SSLContext sslContext SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();final SSLConnectionSocketFactory sslsf new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);final RegistryConnectionSocketFactory socketFactoryRegistry RegistryBuilder.ConnectionSocketFactory create().register(https, sslsf).register(http, new PlainConnectionSocketFactory()).build();final BasicHttpClientConnectionManager connectionManager new BasicHttpClientConnectionManager(socketFactoryRegistry);try (CloseableHttpClient httpClient HttpClients.custom().setConnectionManager(connectionManager).build();CloseableHttpResponse response (CloseableHttpResponse) httpClient.execute(getMethod, new CustomHttpClientResponseHandler())) {final int statusCode response.getCode();assertThat(statusCode, equalTo(HttpStatus.SC_OK));} }通过新的TrustStrategy覆盖标准证书验证过程后测试现在可以通过客户端能够成功消费HTTPS URL。 配置SSL - 接受所有HttpClient 4.5 对于HttpClient 4.5版本配置方式类似但使用了一些不同的API Test public final void givenAcceptingAllCertificates_whenHttpsUrlIsConsumed_thenOk()throws GeneralSecurityException {TrustStrategy acceptingTrustStrategy (cert, authType) - true;SSLContext sslContext SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();SSLConnectionSocketFactory sslsf new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);RegistryConnectionSocketFactory socketFactoryRegistry RegistryBuilder.ConnectionSocketFactory create().register(https, sslsf).register(http, new PlainConnectionSocketFactory()).build();BasicHttpClientConnectionManager connectionManager new BasicHttpClientConnectionManager(socketFactoryRegistry);CloseableHttpClient httpClient HttpClients.custom().setSSLSocketFactory(sslsf).setConnectionManager(connectionManager).build();HttpComponentsClientHttpRequestFactory requestFactory new HttpComponentsClientHttpRequestFactory(httpClient);ResponseEntityString response new RestTemplate(requestFactory).exchange(urlOverHttps, HttpMethod.GET, null, String.class);assertThat(response.getStatusCode().value(), equalTo(200)); }Spring RestTemplate与SSLHttpClient 5 了解了如何配置带有SSL支持的基本HttpClient之后我们来看看更高级别的客户端——Spring RestTemplate。 在没有配置SSL的情况下预期的测试会失败 Test void whenHttpsUrlIsConsumed_thenException() {final String urlOverHttps https://localhost:8443/httpclient-simple/api/bars/1;assertThrows(ResourceAccessException.class, () - {final ResponseEntityString response new RestTemplate().exchange(urlOverHttps, HttpMethod.GET, null, String.class);assertThat(response.getStatusCode().value(), equalTo(200));}); }接下来配置SSL来解决这个问题 Test void givenAcceptingAllCertificates_whenHttpsUrlIsConsumed_thenOk() throws GeneralSecurityException {final TrustStrategy acceptingTrustStrategy (cert, authType) - true;final SSLContext sslContext SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();final SSLConnectionSocketFactory sslsf new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);final RegistryConnectionSocketFactory socketFactoryRegistry RegistryBuilder.ConnectionSocketFactory create().register(https, sslsf).register(http, new PlainConnectionSocketFactory()).build();final BasicHttpClientConnectionManager connectionManager new BasicHttpClientConnectionManager(socketFactoryRegistry);final CloseableHttpClient httpClient HttpClients.custom().setConnectionManager(connectionManager).build();final HttpComponentsClientHttpRequestFactory requestFactory new HttpComponentsClientHttpRequestFactory(httpClient);final ResponseEntityString response new RestTemplate(requestFactory).exchange(urlOverHttps, HttpMethod.GET, null, String.class);assertThat(response.getStatusCode().value(), equalTo(200)); }这里配置方式与直接使用HttpClient非常相似我们用带有SSL支持的请求工厂配置了RestTemplate。 结论 本教程讨论了如何配置Apache HttpClient以使其能够消费任何HTTPS URL无论证书的有效性如何。 同样也展示了如何对Spring RestTemplate进行同样的配置。 重要的是要理解这种策略完全忽略了证书检查——这使得它不安全仅应在合理的情况下使用。
http://www.hkea.cn/news/14402018/

相关文章:

  • 丽水市莲都建设分局网站东莞证券
  • m开头的手机网站怎么做营销平台是什么意思
  • 网站换域名要怎么做怎么在百度建设一个网站
  • 环保材料 技术支持 东莞网站建设上海专业建设网站制作
  • 外贸通道支持asp的网站吗wordpress进不后台
  • 网站服务器租用选择建设网站如
  • 网站留言短信通知虚拟主机部署网站
  • h5 网站开发流程图公司展示网站制作
  • 基于漏斗模型网站关键路径分析wordpress 关闭warning
  • 网站图片布局长春网站长春网络推广建设
  • 深圳网站设计比较好的公司网站建设 课题研究的背景
  • 医院内外网站建设网站收录方法
  • 学商务网站建设的感想wordpress弹幕播放器插件
  • 可信网站认证 代理商如何创建自己的博客网站
  • 教育网站开发用例图导购类网站怎么做
  • 重庆妇科医院免费咨询上海整站优化公司
  • 长沙移动网站建设哪家好陕西专业网站开发联系电话
  • 济宁网站建设 帮站延庆区加工网站建设推广
  • 国内免费建站网站西安小程序专业开发公司
  • 如何自己做网站手机临沂做网站电话
  • 做网站用python还是php可信网站注册
  • 深圳做网站de有自己网站做淘宝客赚钱吗
  • 大连网站推广建站公司网站模板论坛
  • 青岛开发网站古镇中小企业网站建设
  • 做网站的公司在哪部署自己做的网站吗
  • 万户做网站好不好网站建设需多少钱
  • 做网站的服务器多少钱怎么制作一个app软件
  • 中国建设银行上海分行信息网站路由器映射做网站稳定吗
  • 淘宝客单页网站程序邯郸一堆网络科技
  • 单页面网站制作广东网站设计的公司