I am using a web service protected by authentication of a username with symmetric keys using java-web-start . The problem is that my TrustStore hard-coded into a WSIT file, so authentication fails with a FileNotFoundException .
<wsp:All> <sc:CallbackHandlerConfiguration wspp:visibility="private"> <sc:CallbackHandler default="h" name="usernameHandler"/> <sc:CallbackHandler default="kiko" name="passwordHandler"/> </sc:CallbackHandlerConfiguration> <sc:TrustStore wspp:visibility="private" location="C:\glassfish3\glassfish\domains\domain_1\config\cacerts.jks" type="JKS" storepass="changeit" peeralias="xws-security-server"/> </wsp:All>
How can I embed a trusted store in an application and download it from a bank? Thanks.
Change 1
this is an exception in the jws client:
30 juin 2012 09:44:01 [com.sun.xml.ws.policy.parser.PolicyConfigParser] parse INFO: WSP5018: Loaded WSIT configuration from file: jar:http://server_url.net:8080/___JWSappclient/___app/realm_consumer/realm_consumerClient/realm_consumer.jar!/META-INF/wsit-client.xml. 30 juin 2012 09:44:04 com.sun.xml.wss.impl.misc.DefaultCallbackHandler initTrustStore GRAVE: WSS1509: Failed to initialize Trust store java.io.FileNotFoundException: C:\glassfish3\glassfish\domains\domain_1\config\cacerts.jks (Le chemin d'accès spécifié est introuvable) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.initTrustStore(DefaultCallbackHandler.java:909) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.<init>(DefaultCallbackHandler.java:340) at com.sun.xml.wss.jaxws.impl.SecurityClientTube.configureClientHandler(SecurityClientTube.java:822) at com.sun.xml.wss.jaxws.impl.SecurityClientTube.<init>(SecurityClientTube.java:180) at com.sun.xml.wss.provider.wsit.SecurityTubeFactory.createTube(SecurityTubeFactory.java:285) at com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:84) at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java:130) at com.sun.xml.ws.client.Stub.createPipeline(Stub.java:228) at com.sun.xml.ws.client.Stub.<init>(Stub.java:205) at com.sun.xml.ws.client.Stub.<init>(Stub.java:178) at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:85) at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:608) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:348) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:330) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312) at javax.xml.ws.Service.getPort(Service.java:134) at realm_consumer.Cw_Service.getCwPort(Cw_Service.java:72) at realm_consumer.Ws.hmd(Ws.java:24) at Gui.Gui.jButton1ActionPerformed(Gui.java:80) at Gui.Gui.access$000(Gui.java:14) at Gui.Gui$1.actionPerformed(Gui.java:43) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 30 juin 2012 09:44:04 com.sun.xml.wss.jaxws.impl.SecurityClientTube configureClientHandler GRAVE: WSSTUBE0027: Error in configuring Client Security Callback Handler. java.lang.RuntimeException: java.io.FileNotFoundException: C:\glassfish3\glassfish\domains\domain_1\config\cacerts.jks (Le chemin d'accès spécifié est introuvable) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.initTrustStore(DefaultCallbackHandler.java:919) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.<init>(DefaultCallbackHandler.java:340) at com.sun.xml.wss.jaxws.impl.SecurityClientTube.configureClientHandler(SecurityClientTube.java:822) at com.sun.xml.wss.jaxws.impl.SecurityClientTube.<init>(SecurityClientTube.java:180) at com.sun.xml.wss.provider.wsit.SecurityTubeFactory.createTube(SecurityTubeFactory.java:285) at com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:84) at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java:130) at com.sun.xml.ws.client.Stub.createPipeline(Stub.java:228) at com.sun.xml.ws.client.Stub.<init>(Stub.java:205) at com.sun.xml.ws.client.Stub.<init>(Stub.java:178) at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:85) at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:608) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:348) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:330) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312) at javax.xml.ws.Service.getPort(Service.java:134) at realm_consumer.Cw_Service.getCwPort(Cw_Service.java:72) at realm_consumer.Ws.hmd(Ws.java:24) at Gui.Gui.jButton1ActionPerformed(Gui.java:80) at Gui.Gui.access$000(Gui.java:14) at Gui.Gui$1.actionPerformed(Gui.java:43) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.io.FileNotFoundException: C:\glassfish3\glassfish\domains\domain_1\config\cacerts.jks (Le chemin d'accès spécifié est introuvable) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.initTrustStore(DefaultCallbackHandler.java:909) ... 56 more 30 juin 2012 09:44:04 com.sun.xml.wss.jaxws.impl.SecurityClientTube <init> GRAVE: WSSTUBE0023: Error in creating new instance of SecurityClientTube java.lang.RuntimeException: WSSTUBE0027: Error in configuring Client Security Callback Handler. at com.sun.xml.wss.jaxws.impl.SecurityClientTube.configureClientHandler(SecurityClientTube.java:826) at com.sun.xml.wss.jaxws.impl.SecurityClientTube.<init>(SecurityClientTube.java:180) at com.sun.xml.wss.provider.wsit.SecurityTubeFactory.createTube(SecurityTubeFactory.java:285) at com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:84) at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java:130) at com.sun.xml.ws.client.Stub.createPipeline(Stub.java:228) at com.sun.xml.ws.client.Stub.<init>(Stub.java:205) at com.sun.xml.ws.client.Stub.<init>(Stub.java:178) at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:85) at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:608) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:348) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:330) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312) at javax.xml.ws.Service.getPort(Service.java:134) at realm_consumer.Cw_Service.getCwPort(Cw_Service.java:72) at realm_consumer.Ws.hmd(Ws.java:24) at Gui.Gui.jButton1ActionPerformed(Gui.java:80) at Gui.Gui.access$000(Gui.java:14) at Gui.Gui$1.actionPerformed(Gui.java:43) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: C:\glassfish3\glassfish\domains\domain_1\config\cacerts.jks (Le chemin d'accès spécifié est introuvable) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.initTrustStore(DefaultCallbackHandler.java:919) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.<init>(DefaultCallbackHandler.java:340) at com.sun.xml.wss.jaxws.impl.SecurityClientTube.configureClientHandler(SecurityClientTube.java:822) ... 54 more Caused by: java.io.FileNotFoundException: C:\glassfish3\glassfish\domains\domain_1\config\cacerts.jks (Le chemin d'accès spécifié est introuvable) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.initTrustStore(DefaultCallbackHandler.java:909) ... 56 more Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: WSSTUBE0023: Error in creating new instance of SecurityClientTube at com.sun.xml.wss.jaxws.impl.SecurityClientTube.<init>(SecurityClientTube.java:185) at com.sun.xml.wss.provider.wsit.SecurityTubeFactory.createTube(SecurityTubeFactory.java:285) at com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:84) at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java:130) at com.sun.xml.ws.client.Stub.createPipeline(Stub.java:228) at com.sun.xml.ws.client.Stub.<init>(Stub.java:205) at com.sun.xml.ws.client.Stub.<init>(Stub.java:178) at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:85) at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:608) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:348) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:330) at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312) at javax.xml.ws.Service.getPort(Service.java:134) at realm_consumer.Cw_Service.getCwPort(Cw_Service.java:72) at realm_consumer.Ws.hmd(Ws.java:24) at Gui.Gui.jButton1ActionPerformed(Gui.java:80) at Gui.Gui.access$000(Gui.java:14) at Gui.Gui$1.actionPerformed(Gui.java:43) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.RuntimeException: WSSTUBE0027: Error in configuring Client Security Callback Handler. at com.sun.xml.wss.jaxws.impl.SecurityClientTube.configureClientHandler(SecurityClientTube.java:826) at com.sun.xml.wss.jaxws.impl.SecurityClientTube.<init>(SecurityClientTube.java:180) ... 53 more Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: C:\glassfish3\glassfish\domains\domain_1\config\cacerts.jks (Le chemin d'accès spécifié est introuvable) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.initTrustStore(DefaultCallbackHandler.java:919) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.<init>(DefaultCallbackHandler.java:340) at com.sun.xml.wss.jaxws.impl.SecurityClientTube.configureClientHandler(SecurityClientTube.java:822) ... 54 more Caused by: java.io.FileNotFoundException: C:\glassfish3\glassfish\domains\domain_1\config\cacerts.jks (Le chemin d'accès spécifié est introuvable) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at com.sun.xml.wss.impl.misc.DefaultCallbackHandler.initTrustStore(DefaultCallbackHandler.java:909)
I am using glassfish 3.1.1 and metro / jax-ws. The problem is that the path is hardcoded in the XML file, and I have to load it from the bank in the client.
source share