How to implement Basic Auth using Karate?

Yes, this JS function is all you need:

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

Leave a Comment