Hi Hermann, The problem is that you have not set the *alias* of the private key as the value of the "user" parameter. [1]
The value you have given now is "hermann".
w.setOption(WSHandlerConstants.USER, "hermann");
You can find the alias of the private key using the keytool $ keytool -list -v -keystore path/to/x509pri.p12 -storepass 1234567890 -storetype pkcs12 Take a look at the entries of type "KeyEntry" as shown below and use the "Alias name" value of that particular key that you want to use. Alias name: alice Creation date: Jun 5, 2005 Entry type: keyEntry If that fails I suggest you can give it another try by using the SHA1 certificate fingerprint (lowercase letters without colons) of the public key cert of the particular key that you want to use. This is also available in the output of "keytool -list -v" HTH Thanks, Ruchith [1] http://www.wso2.net/kb/116 On 6/26/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Hi All, I've create a client that send a certificate with the message, I've a problem with certificate. I've a keystore pcks12 given me by a CA now I've configured the client in order to sign message , I ve created a class that set the option of client package PerformWSSecurity; import java.util.Hashtable; import org.apache.axis.AxisEngine; import org.apache.axis.ConfigurationException; import org.apache.axis.SimpleTargetedChain; import org.apache.axis.configuration.SimpleProvider; import org.apache.ws.axis.security.WSDoAllSender; import org.apache.ws.security.handler.WSHandlerConstants; public class MyEngineConfiguration extends SimpleProvider { public MyEngineConfiguration() { super(); this.deployTransport("http", new SimpleTargetedChain(new org.apache.axis.transport.http.HTTPSender())); //parameters Hashtable<String, Object> opts = new Hashtable<String, Object>(); opts.put(AxisEngine.PROP_DISABLE_PRETTY_XML, Boolean.TRUE); this.setGlobalOptions(opts); //requestFlow org.apache.ws.axis.security.WSDoAllSender w = new WSDoAllSender(); w.setOption(WSHandlerConstants.SIG_PROP_FILE, "cryptoSender.properties"); w.setOption(WSHandlerConstants.SIG_KEY_ID, "DirectReference"); w.setOption(WSHandlerConstants.USER, "hermann"); w.setOption(WSHandlerConstants.PW_CALLBACK_CLASS,"PWCallback"); w.setOption(WSHandlerConstants.ACTION, WSHandlerConstants.SIGNATURE); this.setGlobalResponse(w); } @Override public void configureEngine(AxisEngine engine) throws ConfigurationException { engine.refreshGlobalOptions(); } } ant this is cryptoSender.properties org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin org.apache.ws.security.crypto.merlin.file=x509pri.p12 org.apache.ws.security.crypto.merlin.keystore.type=PKCS12 org.apache.ws.security.crypto.merlin.keystore.password=1234567890 now the problem is that when I run my main class I return this exception org.apache.ws.security.WSSecurityException: WSHandler: Signature: error during message procesingorg.apache.ws.security.WSSecurityException: General security error (Unexpected number of X509Data: for Signature) I don't understand which kind of error is this I think that It doesn't read the certificate in the keystore, How can I set the properties in order to read certificate? Thanks a lot Hermann
-- www.ruchith.org --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]