我有一个使用JAX-WS消费另一个Web服务的Spring应用程序。一切都运行良好,但现在这个Web服务已经切换到需要摘要密码。如何在JAX-WS中实现这个?根据Spring文档,这应该是可能的,但我找不到任何带有JAX-WS的代码示例:http://static.springsource.org/spring-ws/site/reference/html/security.html#d4e2684。是否有人之前做过这个?非常感谢任何代码示例。
在查找和阅读文档后,似乎目前使用JAX-WS不可能进行摘要认证。令人惊讶的是,使用现有工具实现这一点应该不会太困难。虽然我没有采用这种方式,但我还是会写下来,以防其他人有兴趣接受挑战。
JAX-WS支持添加处理程序,在将消息或其标头发送到网络之前修改它们。在那个阶段可以完成获取nonce和计算密码摘要的操作。有一篇博客文章介绍了如何添加处理程序以加密和解密消息,可以作为此操作的基础。
支持摘要认证的Axis2使用Apache WSS4J进行安全性保护。因此,WSS4J项目必须具备计算值的所有方法,唯一需要做的就是在JAX-WS回调处理程序中调用正确的方法(并获取nonce)。