如何使用对称密钥使用WSS4J加密和签名SOAP

时间:2015-06-25 08:38:08

标签: java web-services encryption soap wss4j

我需要使用将访问第三方系统(Web服务生产者)的Axis 1.4构建Web服务客户端应用程序。

为了向第三方系统发送有效请求,我需要加密签署 SOAP request,然后再发送给他们。

我按照此链接中的步骤使用wss4j 1.5执行此任务: Calling an OWSM protected service with Axis 1.4 and WSS4J

我的理解是:

1-要加密 SOAP我需要使用第三方公钥,他们会使用自己的私钥对其进行解密。

2-要签名 SOAP我需要使用自己的私钥,他们应该使用我需要与他们共享的公钥来验证签名。

我做到了,但我收到了错误

  faultString: Did not understand "MustUnderstand" header(s)

从第三方结束。在与第三方团队核实后,他们说:

我们使用”带对称密钥的用户名认证“,因此我们不会在我们的信任存储区维护任何客户端证书。只有一个共享密钥用于签名和加密。因此,您需要使用我们的证书进行签名和加密。

这个回复对我没有意义。我了解我需要使用第三方证书(即公钥)加密 SOAP Request

但是如何使用相同的公钥 - 这是他们共享的唯一证书 - 签署SOAP Request

我相信我需要私钥才能做到这一点。

我需要他们的私钥吗?任何澄清都会有所帮助。

0 个答案:

没有答案