java - getSupportedCipherSuites 与 getDefaultCipherSuites Apache CXF

标签 java ssl cxf

此问题适用于了解 Apache CXF JAX RS 工作原理的人员。当 CXF 创建 HttpsUrlConnection 时,它会在默认的 SSLSocketFactory 周围放置一个包装器,称为 SSLSocketFactoryWrapper,它有一个名为 ciphers 的参数。

此参数通过调用 SSLContextImpl 的 getSupportedCipherSuites() 来初始化。

但是,当 JAVA 的默认实现创建 SSLSocket 时,它会通过调用 getDefaultCipherSuites() 来初始化密码,这会返回一个较小的密码列表。

getSupportedCipherSuites() 返回已启用的密码列表 + 那些可以启用的。

看起来我的程序失败只是因为 CXF 调用了 getSupportedCipherSuites 而不是 getDefaultCipherSuites。任何人都知道为什么会这样?有什么方法可以覆盖此行为。我知道如何设置 CipherSuiteFilter,我可以用它来减少密码的数量,但在我的环境中使用它并不容易。

谢谢

最佳答案

您可以通过以下方式使用默认的 SSLSocketFactory:

tlsClientParameters.isUseHttpsURLConnectionDefaultSslSocketFactory()

(参见此处:http://cxf.apache.org/docs/tls-configuration.html#TLSConfiguration-ClientTLSParameters)

我不知道为什么你的程序会失败只是因为安装了范围更广的密码套件而不是默认的...

冷静。

关于java - getSupportedCipherSuites 与 getDefaultCipherSuites Apache CXF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30254840/

相关文章:

java - Selenium WebDriver Java——鼠标移动到错误的元素

java - 单击按钮后打开对话框

ssl - JSSE 的 Tomcat SSL 配置 - 什么是 sslProtocol 属性

Android 应用 facebook https 网址未加载

web-services - 使用 CXF 在 WSDL 中的soapaction

cxf - SoapFault MustUnderstand header ,CXF WSS4J 未提供加密属性文件

java - 如何减少 Apache CXF 客户端 stub 对象的内存大小?

java -jar 无法从 list 文件读取类路径,导致 NoClassDefFoundError 错误

java - 使用对象的字段过滤 ArrayList

node.js - 无法在 https SSL 上读取 nodejs 中未定义的属性 'NODE_ENV'