Skip to Content

This blog describes how to make POST calls containing CSRF tokens to Gateway using SoapUI.

The testcase contains 3 steps, and a property named CSRF,

Setup.png

Check field “Maintain HTTP session” under testcase options, this will make sure that the cookies set in the GET request are reused in the POST request,

TestCase Options.png

1: Get CSRF

This will fetch the token via a GET request, add header “X-CSRF-Token” and value “Fetch”

Get CSRF.png

2: Groovy Script

The script will take the token from the GET request and store it in the testcase “CSRF” property

Groovy.png

def headerValue = testRunner.testCase.getTestStepByName(“Get CSRF”).httpRequest.response.responseHeaders[“x-csrf-token”];

log.info( headerValue[0] );

testRunner.testCase.setPropertyValue( “CSRF”, headerValue[0] );

3: POST

The actual request using the token, add header “X-CSRF-Token” with value “${#TestCase#CSRF}”, set content type according to input data

POST.png

To report this post you need to login first.

6 Comments

You must be Logged on to comment or reply to a post.

        1. Lars Hvam Post author

          Hmm, something might be broken then, below is the expected result where “GZHmg4qIi5noiw5RLUM5Nw==” is the token value

          /wp-content/uploads/2015/03/expected_670158.png

          (0) 
  1. Anupama Himasagar

    Hi Lars,

    We have tried the above  for our ABAP odata  for Post method ( ie Batch create ).

    We are not getting any response .

    The required entry is not getting created in our tables.

    Any special configuration needs to be maintained?

    Thanks

    Anupama

    (0) 
  2. swee chen

    Hi

    Thanks for the post, but the first step is the key and could please show some more details?

    In my situation, I need to login the test box at first then get the Cookies and token. The first step of request would be Post, instead of Get.

    Many thanks.

    Cheers

    (0) 

Leave a Reply