java - 有没有办法在 citrus 框架中关闭 ssl 验证?
问题描述
我想测试一个 https (api) 客户端。
但我想关闭ssl validation
柑橘。你能告诉我如何关闭ssl验证吗?
(httpActionBuilder -> httpActionBuilder
.client("https://localhost") .send() .get() .header(....)
这是自动检查ssl
证书。
我收到以下异常:
PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径;嵌套异常是 javax.net.ssl.SSLHandshakeException。
有什么方法可以关闭 ssl 验证(就像我们ssl
在邮递员或任何其他框架中禁用验证一样)。
我将如何将上下文添加到 ssl 上下文到柑橘测试
http(httpActionBuilder -> httpActionBuilder .client(" https://....com ") .send() .get() .header(....)
解决方案
你可以试试下面的代码。我正在尝试允许所有受信任的证书,以便您可以进行 https 调用。
try {
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; }
public void checkClientTrusted(X509Certificate[] certs, String authType) { }
public void checkServerTrusted(X509Certificate[] certs, String authType) { }
} };
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(
sslcontext, NoopHostnameVerifier.INSTANCE);
HttpClients.custom()
.setSSLSocketFactory(sslSocketFactory)
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
.build();
}
catch (IOException | CertificateException | NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) {
throw new BeanCreationException("Failed to create http client for ssl connection", e);
}
推荐阅读
- r - 如何在长格式数据框中“合并”重复的列值
- c# - 发布后出错:字符串未被识别为有效的 DateTime asp.net
- apache-camel - 使用 Apache Camel CometD 组件订阅 Salesforce Change Data Capture
- c# - 如何将 DTO 文件映射到我的 .Net Core 项目中的模型
- reactjs - 将 Android webview 迁移到 React-Native-Webview
- javascript - 功能在按钮上不起作用(myMove 未在 HTMLButtonElement.onclick 中定义)
- c# - 在传递给 Where 子句的方法中使用时填充导航属性
- r - 为年龄创建年龄范围 - R
- python - 将函数应用于列标题包含特定字符串的数据框中的列
- ios - 如何动态更改 SegmentedControl 中标签中的值?斯威夫特 4,iOS