Details
Description
I have built the cxf-ws-security-signature example contained in the assembly and installed it in ServiceMix. Next I have run mvn exec:java in the sample directory and got following error
java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8181/cxf/HelloWorldSecurity at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1626) at org.apache.servicemix.examples.cxf.Client.sendRequest(Client.java:47) at org.apache.servicemix.examples.cxf.Client.main(Client.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293) at java.lang.Thread.run(Thread.java:745)
Looking into the log I have found following error
Caused by: org.apache.wss4j.common.ext.WSSecurityException: Cannot create Crypto class org.apache.ws.security.components.crypto.Merlin
Original Exception was org.apache.wss4j.common.ext.WSSecurityException: Failed to load credentials.
Original Exception was java.io.IOException: Invalid keystore format
at org.apache.wss4j.common.crypto.CryptoFactory.getInstance(CryptoFactory.java:132)[188:org.apache.wss4j.wss4j-ws-security-common:2.0.3]
at org.apache.wss4j.dom.handler.WSHandler.loadCrypto(WSHandler.java:1045)[189:org.apache.wss4j.wss4j-ws-security-dom:2.0.3]
at org.apache.wss4j.dom.handler.WSHandler.loadSignatureCrypto(WSHandler.java:963)[189:org.apache.wss4j.wss4j-ws-security-dom:2.0.3]
at org.apache.wss4j.dom.handler.WSHandler.decodeSignatureParameter2(WSHandler.java:1398)[189:org.apache.wss4j.wss4j-ws-security-dom:2.0.3]
at org.apache.wss4j.dom.handler.WSHandler.doReceiverAction(WSHandler.java:347)[189:org.apache.wss4j.wss4j-ws-security-dom:2.0.3]
at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessageInternal(WSS4JInInterceptor.java:266)[195:org.apache.cxf.cxf-rt-ws-security:3.0.4]
... 39 more
Caused by: org.apache.wss4j.common.ext.WSSecurityException: Failed to load credentials.
Original Exception was java.io.IOException: Invalid keystore format
at org.apache.wss4j.common.crypto.Merlin.load(Merlin.java:407)[188:org.apache.wss4j.wss4j-ws-security-common:2.0.3]
at org.apache.wss4j.common.crypto.Merlin.loadProperties(Merlin.java:224)[188:org.apache.wss4j.wss4j-ws-security-common:2.0.3]
at org.apache.wss4j.common.crypto.Merlin.<init>(Merlin.java:160)[188:org.apache.wss4j.wss4j-ws-security-common:2.0.3]
at org.apache.wss4j.common.crypto.CryptoFactory.getInstance(CryptoFactory.java:127)[188:org.apache.wss4j.wss4j-ws-security-common:2.0.3]
... 44 more
Caused by: java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650)[:1.7.0_76]
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)[:1.7.0_76]
at java.security.KeyStore.load(KeyStore.java:1214)[:1.7.0_76]
at org.apache.wss4j.common.crypto.Merlin.load(Merlin.java:401)[188:org.apache.wss4j.wss4j-ws-security-common:2.0.3]
... 47 more
Checking the original server-truststore.jks gives following result
$ file server-truststore.jks server-truststore.jks: Java KeyStore $ file -bi server-truststore.jks application/x-java-keystore; charset=binary
but the same check with the file contained in the assemblied examples gives following result
$ file server-truststore.jks server-truststore.jks: data $ file -bi server-truststore.jks application/octet-stream; charset=binary
Something must be changed by the assembly plugin