如何使用空手道实现基本身份验证?

Posted

技术标签:

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

I saw details about Oauth 2 in Karate Demo , Can you also provide how to implement Basic Auth ?

【问题讨论】:

【参考方案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://***.com/a/58643689/143475 和 https://***.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/… 对不起,上面的信用是什么?

以上是关于如何使用空手道实现基本身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 YAML、tavern 和 pytest 使用基本身份验证测试 API

如何改进 HTTP 基本身份验证?

如何使用默认域在 Web.config 中启用基本身份验证和匿名身份验证?

如何在同一应用程序中使用 spring-sample 示例配置 Spring Security 基本身份验证和 SAML 身份验证

使用 fetch 进行基本身份验证(或任何身份验证)

如何使用基本身份验证提供静态文件?