有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使命感NET Web服务(WSE 2/3,WSSecurity)来自Java

我需要调用一个书面的web服务。NET从Java下载。web服务实现WS-Security堆栈(WSE 2或WSE 3,我掌握的信息不清楚)

我从服务提供商那里收到的信息包括WSDL,一种策略缓存。配置文件、一些示例C#代码和一个可以成功调用服务的示例应用程序

这并不像听起来那么有用,因为不清楚我应该如何使用这些信息来编写Java客户机。如果web服务请求未根据策略签名,则服务将拒绝该请求。我正在尝试使用ApacheAxis2,但找不到任何关于如何使用policyCahce的说明。配置文件和WSDL来生成客户端

我在网上找到了几个例子,但在所有情况下,这些例子的作者都控制着服务和客户机,因此能够对双方进行调整,以使其正常工作。我不是那种人

有人成功地做到了吗


共 (2) 个答案

  1. # 2 楼答案

    WS-Security规范通常不包含在WSDL中(从不包含在WSE WSDL中)。所以wsdl2java甚至不知道这个服务需要WS-Security。WSE WSDL中不存在安全约束这一事实让我非常失望(WCF将在WSDL中包含WS-Trust信息)

    在客户端,您需要使用Rampart将必要的WS-Security头添加到传出的客户端消息中。由于WSDL没有报告哪些WS-Security设置是必要的,因此最好询问服务提供商需要什么。WS-Security要求可能是简单的明文密码,也可能是X509证书,或者可能是加密消息。。。。。Rampart应该能够处理大多数这种情况

    Apache Rampart通过在axis2中使用模块来“打开”。xml文件。您需要下载Rampart模块并将其放在axis2目录中的特定位置,然后修改xml文件。你也可以通过编程方式参与Rampart(如果这是一个要求,请编辑你的原始问题,我会编辑这个回答)

    根据您配置rampart的方式(通过其他XML文件或编程),它将拦截任何传出消息,并向其中添加必要的WS-Security信息。我个人使用axis2和rampart来调用WSE3服务,该服务由明文形式的UsernameToken保护,效果非常好。类似但更高级的场景也应该适用。在上面链接的网站上有更多关于如何设置和开始使用Rampart的详细信息。如果您对Rampart的细节或如何将Rampart与特定的WSE设置一起使用存在问题,请编辑您的问题,我将尽最大努力回答