2011-09-08 52 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生成客户端存根... –