1

我们需要调用一个 Web 服务,在一个 wsdl 和多个技术文档中进行了描述。

Web 服务提供商表示他们支持 OASIS(ws-security,http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf)。但是,我们从提供者那里收到的 wsdl 中没有提到这一点。

管理要求我们实现消息加密和签名。以前,这是使用轴和 wsdd 文件完成的。

我为 Web 服务创建了一个 jax-ws 客户端。现在,我想为其添加 ws-security。如果我理解正确,我需要编写一个 wsit-client.xml 文件。但是,我不确定是否需要在 wsdl 中引用它。如果可能的话,我不想改变它,所以如果我们得到一个新版本,我们就不需要改变它。这可能吗?

此外,我尝试使用 netbeans 生成 wsit-client.xml。我没有得到签名/加密的选项。是因为 wsdl 中没有提及任何政策吗?我们使用的是 Eclipse,所以我只使用 netbeans 进行快速测试。

4

1 回答 1

1

wsit-client.xml基本上是您的 WSDL 丰富了 <wsp:Policy> 声明,该声明准确地指定了如何/是否加密/签名/验证 SOAP 请求和响应。

您可以在此处查看 MCS(相互证书安全)的示例使用者:

http://java.net/projects/wsit/sources/svn/show/trunk/wsit/samples/ws-security/src/mcs?rev=7090


要回答您的问题,您不必修改原始 WSDL。话虽如此,在具体的 WSDL 中包含策略规范总是非常可取的,因为策略是接口契约的重要组成部分,即它必须在消费者和提供者之间匹配才能使通信成功。

于 2012-05-03T15:25:49.347 回答