Sourabh Chapali
Sourabh Chapali

Reputation: 391

How to implement Basic Auth using Karate?

I saw details about OAuth2 in Karate Demo. Can you also provide how to implement Basic Auth?

screenshot

Upvotes: 6

Views: 15542

Answers (1)

Peter Thomas
Peter Thomas

Reputation: 58058

Yes, this JS function is all you need (basic-auth.js):

function(creds) {
  var temp = creds.username + ':' + creds.password;
  var Base64 = Java.type('java.util.Base64');
  var encoded = Base64.getEncoder().encodeToString(temp.getBytes());
  return 'Basic ' + encoded;
}

And then use this function to build the value of the Authorization header:

* header Authorization = call read('basic-auth.js') { username: 'john', password: 'secret' }

Refer to the docs here: https://github.com/intuit/karate#http-basic-authentication-example

For OAuth or "login form" kinds of flows, see: https://stackoverflow.com/a/58643689/143475 and https://stackoverflow.com/a/46333729/143475

Upvotes: 13

Related Questions