1

我需要使用Axis 1.4它将访问第三方系统(Web 服务生产者)来构建 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

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

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

4

0 回答 0