使用Java调用安全的Web服务

前端之家收集整理的这篇文章主要介绍了使用Java调用安全的Web服务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我需要编写一个Web服务客户端来调用第三方Web服务(基于SOAP).第三方发布了wsdl和相关的xsd文件.@H_301_2@

第三方使用.p12证书保护其网站和服务@H_301_2@

我使用wsdl2java生成我的存根.我修改了端点并调用了服务.我收到以下错误:@H_301_2@

@H_301_2@

Failed: Element (/soapenv:Envelope/soapenv:Body) was not signed

嗯,好的.有道理我应该签署文件.@H_301_2@

奇怪的部分(对我来说)是WSDL文件中没有任何安全定义.这是正常的吗?我联系了第三方,他们向我发送了一个关于SOAP消息需要的pdf.标题显示以下标记
    
含:@H_301_2@

@H_301_2@

和@H_301_2@

@H_301_2@

所以从我收集的内容来看,它需要我的证书和一些数字签名.@H_301_2@

有人可以推荐如何在Java中生成这些?我开始沿着Axis2 / Rampart路径开始,但老实说,似乎这些都是基于WSDL文件中定义的安全要求(如果我错了,请纠正我).@H_301_2@

最佳答案
看起来您需要使用WS-Security标准为您签名. WS-security标准未指定任何到wsdl文件的安全性映射.某些应用程序将WS-Security策略和WS-Policy Attachement与Ws-security结合使用. WS-Policy Attachment确定了将策略映射到WSDL的方法.@H_301_2@

您可以从w3.org了解有关这些标准的更多信息@H_301_2@

是的,你是在正确的道路上,可以使用WSS4J或轴壁垒你的选择.@H_301_2@

猜你在找的Java相关文章