CXF TLSClientParameters setDisableCNCheck true 不起作用

问题描述 投票:0回答:2

我正在使用 CXF 2.7.3,并且想要禁用 CN 检查代码:

TLSClientParameters tlsParams = conduit.getTlsClientParameters();
if (tlsParams == null) {
    tlsParams = new TLSClientParameters();
}
tlsParams.setSecureSocketProtocol(sslAlgorithm);
tlsParams.setUseHttpsURLConnectionDefaultHostnameVerifier(false);
tlsParams.setDisableCNCheck(true);

它似乎对我不起作用。我已经尝试过网络上的各种示例,但没有成功。 如果我使用 cxf.xml 它适用于此:

<http-conf:conduit name="*.http-conduit"
    xmlns:sec="http://cxf.apache.org/configuration/security"
    xmlns="http://cxf.apache.org/transports/http/configuration">
    <http-conf:tlsClientParameters disableCNCheck="true" useHttpsURLConnectionDefaultHostnameVerifier="false" />
</http-conf:conduit>

我宁愿不引入 Spring 配置只是为了让这个单行代码工作。 有任何想法吗? 谢谢!

cxf
2个回答
2
投票

我真的不确定它会解决你的问题(没有足够的信息,而且我没有足够的声誉来对你的帖子发表评论:-)),但由于我花了几天时间来解决类似的问题,所以做一下不会有什么坏处信息公开...

我在添加拦截器时遇到了类似的问题。 如果你打电话给

client.getEndpoint();
在代码中的某个时刻,管道将被重新初始化,参见

http://mail-archives.apache.org/mod_mbox/cxf-users/201305.mbox/%3COFB00B58DA.85E410E4-ONC1257B6D

解决方案是编写一个自定义拦截器来执行客户端/管道配置。


0
投票

老话题,但我会标记解决方案,以防有人遇到同样的错误...

设置 tlsParams.setDisableCNCheck(true); 后,必须将 TLSClientParameters 设置到管道中 conduit.setTlsClientParameters(tlsParams );

© www.soinside.com 2019 - 2024. All rights reserved.