Domanda

im trying to generate a Nonce string to use in my soap request. Ive found some jboss functions and imported the binaries to the /lib folder.

My code looks like this:

import org.jboss.ws.extensions.security.nonce.DefaultNonceGenerator;
import org.jboss.util.Base64;

//Generate Nonce security key
DefaultNonceGenerator nonceGen = new DefaultNonceGenerator();
String Nonce = nonceGen.generateNonce();

vars.put("Nonce", Nonce);

However im getting these errors in jmeter.log:

2014/02/18 10:02:37 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method:      eval  Sourced file: inline evaluation of: ``import org.jboss.ws.extensions.security.nonce.DefaultNonceGenerator; import org. . . . '' : Typed variable declaration : Method Invocation nonceGen.generateNonce 
2014/02/18 10:02:37 WARN  - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    Sourced file: inline evaluation of: ``import org.jboss.ws.extensions.security.nonce.DefaultNonceGenerator; import org. . . . '' : Typed variable declaration : Method Invocation nonceGen.generateNonce 

Anyone knows what im doing wrong? Im at a loss :(

È stato utile?

Soluzione


I think you need to check first all required libraries and dependencies are present in Jmeter runtime(lib/ext).
Then restart and try,

If you still getting error, try to make your own jar file using following code,

Instead of org.jboss.util.Base64 class you can use this Base64 jar file , put your jar file and Base64 jar in bin/ext folder and restart Jmeter

import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import org.jboss.util.Base64;

  public class MyDefaultNonceGenerator     
  {
     public String generateNonce()
     {
        try
        {
           SecureRandom pseudoRng;
           pseudoRng = SecureRandom.getInstance("SHAPRNG");
           pseudoRng.setSeed(System.currentTimeMillis());
           byte[] bytes = new byte[];
           pseudoRng.nextBytes(bytes);
           return Base.encodeBytes(bytes);
        }
        catch (NoSuchAlgorithmException e)
        {return "Null";} 
     }

  }

You can access this jar file from beanshell pre-processor using following script

var nonce= new yourpackage.MyDefaultNonceGenerator().generateNonce() vars.put("nonce",nonce);



Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top