1

I'm using wss4j in order to sign a message request. But when signing the message with this code:

Document d = signer.build(unsignedDoc, crypto, header)

I always get the error

org.apache.ws.security.WSSecurityException: General security error (no certificates for user ... were found for signature)

Searching for the cause I found out, that en empty key store seems to be the reason for this.

This is how I create a crypto instance:

private void createCrypto(){
   // reading preferences (keystone-filename, password, etc.) from properties file
   Properties prop = new Properties();
   FileInputStream fis = new FileInputStream("myprops.properties");
   props.load(fis);

   // create a crypto instance
   Crypto crypto = CryptoFactory.getInstance(props);

   // This line always prints "Size:0"
   System.out.println("Size:" + crypto.getKeyStore.getSize())
   ...

But if I load the Keystore the following way, it shows size=1:

private void loadKeystore(){
   KeyStore keystore;
   try{
   // reading and loading keystone file
   InputStream is = new FileInputStream("myKeyStore.jks");
   keystore.load(is, "password".toCharArray());
   // Prints "Size:1"
   System.out.println("Size:"+keystore.size());
   ...

So I wonder, what is wrong with the first example. Why is the keystore empty? I already checked the properties: keystore and password are set correctly! But if I remove the keystore-property from the properties-file, the error message is the same.

Can anyone help me with this?

Leto
  • 11
  • 4

0 Answers0