【问题标题】:How to implement Basic Auth using Karate?如何使用空手道实现基本身份验证?
【发布时间】:2021-06-30 16:32:50
【问题描述】:

【问题讨论】:

    标签: karate


    【解决方案1】:

    是的,这个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;
    }
    

    然后使用这个函数来构建Authorization标头的值:

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

    请参阅此处的文档:https://github.com/intuit/karate#http-basic-authentication-example

    对于 OAuth 或“登录表单”类型的流程,请参阅:https://stackoverflow.com/a/58643689/143475https://stackoverflow.com/a/46333729/143475

    【讨论】:

    • 这个功能很有帮助,但由于某种原因它对我不起作用。我不得不将这一行:var encoded = Base64.getEncoder().encodeToString(temp.bytes); 修改为:var encoded = Base64.getEncoder().encodeToString(temp.getBytes());
    • @PeteLoggie 谢谢,我编辑了答案。这发生在我们在 1.X 中更改 JS 引擎时:github.com/intuit/karate/wiki/…
    • 对不起,上面的信用是什么?
    猜你喜欢
    • 2011-08-20
    • 2017-11-02
    • 2020-06-05
    • 2011-12-06
    • 2015-09-18
    • 1970-01-01
    相关资源
    最近更新 更多