2014-10-09 61 views
0

我用这个教程的WebSphere Application Server 8.5.5完全看不出进口客户端密钥

http://www.ibm.com/developerworks/websphere/tutorials/0905_griffith/

用于在服务器端设置安全JAX-WS Web服务,现在我想打电话给该网络通过soapUI服务,我在soapUI中签名消息,但在用这个消息调用web服务之后,我得到服务器无法找到签名者密钥的错误。什么可能是错误的?绑定配置为包含包含具有客户端证书的密钥库的trustore。

堆栈跟踪:

CWWSS5514E:一个例外,在处理WS-Security的消息:com.ibm.wsspi.wssecurity.core.SoapSecurityException:CWWSS6521E:登录失败,因为一个例外:javax.security.auth中.login.LoginException:CWWSS6810E:运行时无法识别对应于所述标识符的密钥[CN = klient,O = SD,C = PL:458001165]

at com.ibm.wsspi.wssecurity.core.SoapSecurityException.format(SoapSecurityException.java:136) 
at com.ibm.ws.wssecurity.wssapi.token.impl.CommonTokenConsumer.getSoapSecurityException(CommonTokenConsumer.java:586) 
at com.ibm.ws.wssecurity.wssapi.token.impl.CommonTokenConsumer.invoke(CommonTokenConsumer.java:426) 
at com.ibm.ws.wssecurity.wssapi.CommonContentConsumer.invokeTokenConsumer(CommonContentConsumer.java:679) 
at com.ibm.ws.wssecurity.wssapi.CommonContentConsumer.getKey(CommonContentConsumer.java:323) 
at com.ibm.ws.wssecurity.keyinfo.KeyInfoConsumer.getKey(KeyInfoConsumer.java:200) 
at com.ibm.ws.wssecurity.dsig.SignatureConsumer.callKeyInfoConsumer(SignatureConsumer.java:1140) 
at com.ibm.ws.wssecurity.dsig.SignatureConsumer.callKeyInfoConsumer(SignatureConsumer.java:1104) 
at com.ibm.ws.wssecurity.dsig.SignatureConsumer.invoke(SignatureConsumer.java:272) 
at com.ibm.ws.wssecurity.core.WSSConsumer.callSignatureConsumer(WSSConsumer.java:2924) 
at com.ibm.ws.wssecurity.core.WSSConsumer.callSignatureConsumer(WSSConsumer.java:2827) 
at com.ibm.ws.wssecurity.core.WSSConsumer.invoke(WSSConsumer.java:862) 
at com.ibm.ws.wssecurity.handler.WSSecurityConsumerBase.invoke(WSSecurityConsumerBase.java:110) 
at com.ibm.ws.wssecurity.handler.WSSecurityConsumerHandler._invoke(WSSecurityConsumerHandler.java:537) 
at com.ibm.ws.wssecurity.handler.WSSecurityConsumerHandler.access$100(WSSecurityConsumerHandler.java:127) 
at com.ibm.ws.wssecurity.handler.WSSecurityConsumerHandler$1.run(WSSecurityConsumerHandler.java:191) 
at com.ibm.ws.security.context.ContextImpl.runWith(ContextImpl.java:362) 
at com.ibm.ws.wssecurity.platform.websphere.auth.WSSContextImpl.runWith(WSSContextImpl.java:65) 
at com.ibm.ws.wssecurity.handler.WSSecurityConsumerHandler$2.run(WSSecurityConsumerHandler.java:197) 
at java.security.AccessController.doPrivileged(AccessController.java:280) 
at com.ibm.ws.wssecurity.handler.WSSecurityConsumerHandler.invoke(WSSecurityConsumerHandler.java:195) 
at org.apache.axis2.handlers.AbstractHandler.invoke_stage2(AbstractHandler.java:133) 
at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:343) 
at org.apache.axis2.engine.Phase.invoke(Phase.java:313) 
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:360) 
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:195) 
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) 
at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1583) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458) 
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032) 
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3761) 
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) 
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:976) 
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283) 
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) 
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862) 
+0

尝试在SoapUI中选择作为密钥标识符类型。或者生成测试应用程序客户端以查看它是否有效。 – Gas 2014-10-09 12:07:40

+0

我使用的是SoapUI 4.5.2,并且没有选项,这里有:颁发者名称和序列号(选定),二进制安全令牌,X509证书,主题密钥标识符(它们都不起作用)。我想过在RAD中创建客户端,但我的Web服务将通过SoapUI 4.5.2进行测试,所以即使它可以通过RAD客户端工作,我仍然必须通过SoapUI使其工作。 – ctomek 2014-10-09 12:19:44

+0

好吧,我有3.5.1,稍后我会看看4.5,看起来如何。但是,什么是目标客户?因为它最终不会是soapUI。 – Gas 2014-10-09 12:43:51

回答

0

事实证明,这是了SoapUI问题和这是不可能的。

0

对我来说,当我在SOAP UI'签名'窗格中将'密钥标识符类型'更改为BinaryToken时,服务器可以按照预期理解和响应。 SOAP UI有一个下拉菜单,其中包含“密钥标识符类型”的各种选项,当选择“BinaryToken”时,这意味着consumer(这里是SOAP UI)将在请求中包含它的证书,因此服务器可以提取它。

相关问题