2011-09-08 51 views
1

我們在實現oasis wsse的weblogic上部署了webservice。然後我使用jboss中的wsconsume創建客戶端(稍後嘗試使用metro)並調用Web服務。它總是拋出一個錯誤,我試圖在soapUI中創建一個測試客戶端,發送成功,並發現由jboss產生的請求不匹配。調用weblogic部署的OASIS WSSE Web服務

有2差我發現: 1)DateToken: 工作:

< WSU:創建> 2011-09-06T08:22:14.515Z </WSU:創建>

不工作:

<的wsse:創建> 2011-09-07T06:12:37.322Z </WSS E:創建>

2.)密碼類型: 工作:

<的wsse:密碼類型=「http://docs.oasis-open.org/wss/2004/01/綠洲-200401-WSS-用戶名令牌輪廓-1.0#PasswordDigest「> OB7izBPcPE0sfJaAEdD1uIrlFT4 = < /的wsse:密碼>

不工作:

< wsse:Password Type ='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd#PasswordDigest'> trvFhf0ZCHQy4cBtNu984fs/nIg = </wsse :密碼>

這是我如何調用從客戶端的Web服務:

URL clientSideSecurityfile = new File("jboss-wsse-client.xml").toURI().toURL(); 
BindingProvider bp = (BindingProvider) port; 
((StubExt) port).setSecurityConfig(clientSideSecurityfile.toExternalForm()); 
((StubExt) port).setConfigName("Standard WSSecurity Client"); 
bp.getRequestContext().put(StubExt.PROPERTY_AUTH_TYPE, StubExt.PROPERTY_AUTH_TYPE_BASIC); 
bp.getRequestContext().put(StubExt.PROPERTY_CLIENT_TIMEOUT, 30000); 
bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "usernmae"); 
bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password"); 
responseACK = port.callWebService(); 

我使用jboss4.2.3,將JBossWS客戶端3.0.1-native-2.0.4.GA。

任何想法如何解決這個問題?看來jbossws正在生成錯誤的wsse標籤,它應該用於datetoken的wsu並輸入密碼: - ?.

回答

1

按照UsernameToken的輪廓specification它應該是,

<wsu:Created> 

wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility- 
1.0.xsd" 

另外,作爲每說明書類型應該是,

Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest" 

兩者;

<wsse:Created>2011-09-07T06:12:37.322Z</wsse:Created> 

而且

<wsse:Password Type='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd#PasswordDigest'>trvFhf0ZCHQy4cBtNu984fs/nIg=</wsse:Password> 

是,不符合規範標準的...

+0

嗨感謝您的快速回復,但顯然jbossws本地生成這兩個錯誤的標籤,正如我所說的。任何在這方面的工作?也許使用其他堆棧: - ? – czetsuya

+0

您可以使用Apache Axis2生成您的客戶端。它帶有名爲wsdl2java的工具,用於從給定的wsdl生成客戶端存根... –