java – 如何在传出的SOAP消息上应用XML签名

我使用cxf codegen生成了存根和绑定.一切运行正常,但由于安全问题,服务器仍拒绝该消息.基本上我有3层照顾所有需要证书(我有).

>管道上的SSL加密
>特定数据元素上的证书签名
>有效负载数据上的证书XML签名.

为了使汤更有趣,我没有完全控制实际的签名和证书.基本上我必须提取正确的数据,发送它以进行签名,我必须在事务中重新注入已签名的数据.

我有权访问的证书位于本地计算机的Windows证书存储区(SSL和一些签名)

阅读文档框架似乎很大程度上依赖于配置伏都教魔法.遗憾的是,我发现的大部分链接都花了很多时间详细解释如何生成证书,但我们对如何实际使用它们感到吝啬.

使用CXF我该如何实现?

如何访问正确的钩子以及我可以在消息上注入签名的代码?

谢谢

解决方法:

原来,CXF具备从一开始就生成适当签名的所有能力.我们的问题是签名的接收端不接受此标准签名.我们必须创建一个自定义签名系统,以确保服务器的不良实现所需的所有挑剔和深奥的人力资源.无论事务的名称空间声明如何,都必须将名称空间前缀设置为非常特定的值.有时候空白区有时候不得修剪……

因此,我们创建了一个拦截器并将其注入到拦截器列表中,就是这样.实际上它有点复杂,因为他们坚持使用最终用户的USB密钥上的证书签署soap事务.我们的系统集中了所有接口,因此我们不得不进一步调整以使其工作,但最终一切都很好.

我虽然使用标准的目的是提供一个标准的做法,好吧……有些人似乎认为他们比创建标准的专家更好的专家,并坚持在罐子里添加他们自己的泡菜.有人应该告诉他们在覆盆子果酱中添加泡菜不会让它味道更好.

上一篇:java-无法解析http://schemas.xmlsoap.org/wsdl/soap/的绑定


下一篇:java – 当我不知道密码时,使用WS-Security进行身份验证