2010-07-02 46 views
4

我们的团队正在使用Spring-WS和XWSS实现基于SOAP的Web服务。到目前为止,我们一直依靠Spring-WS从我们的XSD生成WSDL。我们现在正在考虑是使用WS-SecurityPolicy来记录WSDL中的安全需求,还是将它们在单独的文档中传递。以下是我们正在思考的问题:在WSDL中指定安全策略信息是否常见?

  • 什么是标准?将策略放入WSDL中很常见吗?

  • 许多(任何?)客户端生成器会在WSDL中选择WS-SecurityPolicy信息吗?

  • Spring-WS在生成WSDL时不支持WS-SecurityPolicy。切换到Apache CXF能帮助我们吗?

此外,我们知道REST正在流行,但SOAP已被指定的权力。谢谢!

回答

1

希望这仍然可以帮助任何人。

什么是标准?在WSDL中放置 策略是否很常见?

是的,这很常见。

许多(任何?)客户端生成器在WSDL中选择了 了WS-SecurityPolicy信息?

我不知道很多,我使用地铁,它确实根据安全限制生成客户端。

0

因此,这里是你可以做什么,这是简单的:

1)包括CXF束库项目。如果您正在使用Maven,你可以这样做:

<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-bundle</artifactId> 
    <version>2.7.18</version> 
</dependency> 

2)阅读here如何从WSDL生成Java类。

3)确保在pom文件中,您指向正确的wsdlLocation以从wsdl生成java文件。

4)初始化您生成的客户端并注入提供给您的用户名和密码。事情是这样的:

final YourService service = new YourService(); 
final YourStub stub = service.getService(); 

final Map ctx = ((BindingProvider)stub).getRequestContext(); 

ctx.put("ws-security.username", userName); 
ctx.put("ws-security.password", password); 

stub.callYourMethod(); 

PS:请确保您有正确的库,我只是用CXF束和CXF没有别的,它的工作!之前它没有工作,因为我单独包含了来自cxf的库。

希望帮助!