我需要编写一个Web服务客户端来调用第三方Web服务(基于SOAP).第三方发布了wsdl和相关的xsd文件.
第三方使用.p12证书保护其网站和服务
我使用wsdl2java生成我的存根.我修改了端点并调用了服务.我收到以下错误:
wsse:InvalidSecurity
SECU1075: An error was discovered processing the <wsse:Security> header
SECU3510: Signature requirements validation failed: Element (/soapenv:Envelope/soapenv:Body) was not signed
嗯,好的.有道理我应该签署文件.
奇怪的部分(对我来说)是WSDL文件中没有任何安全定义.这是正常的吗?我联系了第三方,他们向我发送了一个关于SOAP消息需要的pdf.标题中显示以下标记:
含:
和
所以从我收集的内容来看,它需要我的证书和一些数字签名.
有人可以推荐如何在Java中生成这些?我开始沿着Axis2 / Rampart路径开始,但老实说,似乎这些都是基于WSDL文件中定义的安全要求(如果我错了,请纠正我).