2010-07-02 61 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的庫。

希望幫助!