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

  1. 管道上的SSL加密
  2. 特定数据元素的证书签名
  3. 有效载荷数据上的证书XML签名。

为了给汤增添些许汤,我无法完全控制实际签名和证书。基本上,我必须提取适当的数据,将其发送给签名,并且必须在交易中重新注入签名的数据。

我确实可以访问的证书在本地计算机的Windows证书存储中(SSL和一些签名)

阅读文档该框架似乎很大程度上依赖于配置Voodoo Magic。不幸的是,我发现的大多数链接都花了很多时间来解释如何生成证书,但对我们实际使用它们的使用方式相当差。

使用CXF如何实现?

如何访问适当的钩子,并在什么代码上注入签名?

谢谢

有帮助吗?

解决方案

事实证明,CXF具有从一开始就可以生成适当签名的所有功能。我们的问题是,签名的接收端不接受此标准签名。我们必须创建一个自定义签名系统,以确保服务器不良实现所需的所有NIT挑剔和深奥的hocus pocus。无论事务的名称空间声明如何,必须将名称空间前缀设置为非常特定的值。有时必须修剪空格,有时不等等...

因此,我们创建了一个拦截器并将其注入Out拦截器列表中,仅此而已。实际上,这有点复杂,因为他们坚持使用最终用户USB键上的证书签名肥皂交易。我们的系统中心所有接口,因此我们不得不进一步处理以使其正常工作,但最终都很好。

尽管使用标准的目标是提供标准的手段来做事情,好吧……有些人似乎认为他们比创建标准并坚持在罐子中添加自己的泡菜的专家更好。有人应该告诉他们在覆盆子果酱中添加泡菜并不能使其味道更好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top