我使用cxf codegen生成了存根和绑定.一切运行正常,但由于安全问题,服务器仍拒绝该消息.基本上我有3层照顾所有需要证书(我有).
>管道上的SSL加密
>特定数据元素上的证书签名
>有效负载数据上的证书XML签名.
为了使汤更有趣,我没有完全控制实际的签名和证书.基本上我必须提取正确的数据,发送它以进行签名,我必须在事务中重新注入已签名的数据.
我有权访问的证书位于本地计算机的Windows证书存储区(SSL和一些签名)
阅读文档框架似乎很大程度上依赖于配置伏都教魔法.遗憾的是,我发现的大部分链接都花了很多时间详细解释如何生成证书,但我们对如何实际使用它们感到吝啬.
使用CXF我该如何实现?
如何访问正确的钩子以及我可以在消息上注入签名的代码?
谢谢
解决方法:
原来,CXF具备从一开始就生成适当签名的所有能力.我们的问题是签名的接收端不接受此标准签名.我们必须创建一个自定义签名系统,以确保服务器的不良实现所需的所有挑剔和深奥的人力资源.无论事务的名称空间声明如何,都必须将名称空间前缀设置为非常特定的值.有时候空白区有时候不得修剪……
因此,我们创建了一个拦截器并将其注入到拦截器列表中,就是这样.实际上它有点复杂,因为他们坚持使用最终用户的USB密钥上的证书签署soap事务.我们的系统集中了所有接口,因此我们不得不进一步调整以使其工作,但最终一切都很好.
我虽然使用标准的目的是提供一个标准的做法,好吧……有些人似乎认为他们比创建标准的专家更好的专家,并坚持在罐子里添加他们自己的泡菜.有人应该告诉他们在覆盆子果酱中添加泡菜不会让它味道更好.