4

我使用 cxf codegen 生成了存根和绑定。一切运行良好,但由于安全问题,服务器仍然拒绝该消息。基本上我有 3 层来处理所有这些都需要证书(我有)。

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

为了给汤加点料,我无法完全控制实际的签名和证书。基本上我必须提取正确的数据,将其发送出去进行签名,并且我必须在交易中重新注入签名数据。

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

阅读该框架的文档似乎在很大程度上依赖于配置巫术魔法。不幸的是,我发现的大多数链接都花了很多时间详细解释如何生成证书,但对我们如何实际使用它们却相当吝啬。

使用 CXF 如何实现这一点?

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

谢谢

4

1 回答 1

2

事实证明,CXF 具有从一开始就生成正确签名的所有能力。我们的问题是签名的接收端不接受这个标准签名。我们必须创建一个自定义签名系统,以确保服务器糟糕的实现所需的所有挑剔和深奥的骗局都到位。无论事务的命名空间声明如何,命名空间前缀都必须设置为一个非常具体的值。有时必须修剪空白有时不修剪等等......

因此,我们创建了一个拦截器并将其注入到 out 拦截器列表中,就是这样。实际上,这有点复杂,因为他们坚持使用位于最终用户 USB 密钥上的证书对肥皂交易进行签名。我们的系统集中了所有接口,因此我们不得不进一步调整以使其正常工作,但最终一切都很好。

我虽然使用标准的目标是提供做事的标准手段,嗯......似乎有些人认为他们是比创建标准并坚持将自己的泡菜添加到罐子中的专家更好的专家。有人应该告诉他们在覆盆子果酱中添加泡菜并不会使其味道更好。

于 2011-03-29T09:42:19.873 回答