Hi,
I am trying to test scenario 3 and I am getting the "Cannot
recover key" exception : (I am using the interop2.jks keystore file provided in
interop directory )
Maybe the password for keystore has changed ?
Here are the entries in wsstest.properties :
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=password
org.apache.ws.security.crypto.merlin.file=keys/interop2.jks
This is in my server.wsdd
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="passwordCallbackClass"
value="org.apache.ws.axis.oasis.PWCallback1"/>
<parameter name="action" value="Signature Encrypt Timestamp"/>
<parameter name="signaturePropFile" value="wsstest.properties" />
</handler>
</requestFlow>
<responseFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="Signature Encrypt Timestamp"/>
<!-- Use the Server's cert/key to sign the response -->
<parameter name="user" value="bob"/>
<parameter name="passwordCallbackClass"
value="org.apache.ws.axis.oasis.PWCallback1"/>
<parameter name="signatureKeyIdentifier" value="DirectReference" />
<parameter name="signaturePropFile" value="wsstest.properties" />
<parameter name="encryptionKeyIdentifier" value="SKIKeyIdentifier" />
<!-- Use the Client's cert/key to encrypt the response -->
<parameter name="encryptionUser" value="alice" />
</handler>
</responseFlow>
This is in my client.wsdd
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="Signature Encrypt Timestamp"/>
<!-- Use the Client's cert/key to sign the request -->
<parameter name="user" value="alice"/>
<parameter name="passwordCallbackClass"
value="org.apache.ws.axis.oasis.PWCallback1"/>
<parameter name="signatureKeyIdentifier" value="DirectReference" />
<parameter name="signaturePropFile" value="wsstest.properties" />
<parameter name="encryptionKeyIdentifier" value="SKIKeyIdentifier" />
<parameter name="encryptionUser" value="bob" />
</handler>
</requestFlow>
<responseFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="passwordCallbackClass"
value="org.apache.ws.axis.oasis.PWCallback1"/>
<parameter name="action" value="Signature Encrypt Timestamp"/>
<parameter name="signaturePropFile" value="wsstest.properties" />
</handler>
</responseFlow>
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: WSDoAllSender: Signature: error during message
procesingorg.apache.ws.security.WSSecurityException: Signature creation failed;
nested exception is:
java.security.UnrecoverableKeyException: Cannot recover key
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:WSDoAllSender: Signature: error
during message procesingorg.apache.ws.security.WSSecurityException: Signature
creation failed; nested exception is:
java.security.UnrecoverableKeyException: Cannot recover key
at
org.apache.ws.axis.security.WSDoAllSender.performSIGNAction(WSDoAllSender.java:414)
at
org.apache.ws.axis.security.WSDoAllSender.invoke(WSDoAllSender.java:320)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:127)
at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
at org.apache.axis.client.Call.invoke(Call.java:2748)
at org.apache.axis.client.Call.invoke(Call.java:2424)
at org.apache.axis.client.Call.invoke(Call.java:2347)
at org.apache.axis.client.Call.invoke(Call.java:1804)
at
samples.stock.client.StockWss01SoapBindingStub.getQuote(StockWss01SoapBindingStub.java:103)
at
samples.stock.client.StockServiceClient2.main(StockServiceClient2.java:24)