我已经开始用Spring学习Apache CXF了.首先,我创建了一个简单的客户端/服务器模型:see here
现在我正在尝试使用简单的证书身份验证.这样我就改变了配置文件(对于服务器和客户端):
CXF-servlet.xml中:
server_sign.properties:
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=keyStorePassword
org.apache.ws.security.crypto.merlin.file=publicstore.jks
CXF的客户端 – servlet.xml中:
factorybean">
客户工作得很好.它使用它的PasswordCallbackHandler.问题是服务器似乎没有使用它的PasswordCallbackHandler.我在调试模式下运行服务器,但它没有进入这个类.请问任何人解释一下,我做错了什么?
提前致谢.
进展:
>如果您尝试提供来自用户的请求,哪个证书不在服务器的密钥库中,则会引发错误(“未找到用于签名的用户ws-client1的证书”)
>从the resource开始:“正如您在上面的jbossws-cxf.xml文件中所看到的,还配置了密钥库密码回调处理程序;虽然属性文件具有密钥库的密码,但此回调处理程序用于为每个密钥设置密码(它必须匹配在商店中导入每个密钥时使用的那个).“
最佳答案
好吧,经过对wss4j源代码的一些研究,我已经意识到,在签名操作(仅)的情况下,WSS4JInInterceptor中没有回调处理程序.
原文链接:https://www.f2er.com/spring/431799.html