Uploaded image for project: 'ServiceMix'
  1. ServiceMix
  2. SM-2492

Wrong sample keystore format in examples contained in the assembly

    XMLWordPrintableJSON

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

      Attachments

        Activity

          People

            sobkowiak Krzysztof Sobkowiak
            sobkowiak Krzysztof Sobkowiak
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: