CXF TLSClientParameters setDisableCNCheck true不起作用

时间:2013-02-21 17:31:15

标签: cxf

我正在使用CXF 2.7.3并希望在代码中禁用CN检查:

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

它似乎对我不起作用。我已经尝试过WEB中的各种例子而没有运气。 如果我使用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配置只是为了让这个单线程工作。 有任何想法吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

我真的不确定它会解决你的问题(没有足够的信息,而且我没有足够的声誉对你的帖子发表评论:-))但是因为我花了好几天才遇到类似的问题它赢了#39为了让信息公开而伤害...

添加拦截器时遇到了类似的问题。 如果你致电client.getEndpoint(); 在您的代码中的某个时刻,管道将重新初始化,参见

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

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