登录已拒绝为此请求授权_Rest Assured篇:REST WebServices中的身份验证和授权

点击上方蓝字 设为星标 f7468a4e39f2010653ed46319f2430c9.png
每天傍晚伴你一起成长!

4d0c9b28a4f00c098be9f75f64279045.png

REST WebServices 中的身份验证和授权REST API[1]上下文中的两个非常重要的概念。在大多数情况下,您将访问受保护的REST API。所谓安全,是指要求您提供身份证明的API。身份证明可以以

用户名和密码认证令牌秘钥生物识别技术和许多其他方式

在REST API的上下文中,我们将对前三个选项详细探讨。

什么是身份验证?并且授权在REST WebServices中起作用吗?

认证是一种证明您是以合法身份访问系统的过程。

例如,在登录电子邮件帐户时,您可以通过提供用户名密码来证明自己。如果您拥有用户名密码,那么您就是合法访问者。这就是身份验证的意思。

在REST API的上下文中,身份验证使用HTTP请求进行。

注意: 不仅是REST API,使用HTTP请求还会对通过HTTP协议运行的任何应用程序进行身份验证。

基本认证流程

以电子邮件登录为例,我们知道,为了验证我们自己的身份,我们必须提供用户名和密码。在使用用户名和密码的非常基本的身份验证流程中,我们还将在REST API调用中执行相同的操作。但是我们如何在REST请求中发送用户名和密码?

REST请求可以具有一个称为Authorization Header的特殊标头, 该标头可以包含某种形式的凭据(用户名和密码)。收到带有授权标头的请求后,服务器可以验证凭据,并可以让您访问私有资源。

让我们看一个例子,我们创建了一个API,该API需要有效的用户名和密码来访问资源。

端点:http : //restapi.demoqa.com/authentication/CheckForAuthentication

在下面的代码中,我们将尝试点击URL,然后查看得到的响应。

@Test
public void AuthenticationBasics()
{
 RestAssured.baseURI = "https://restapi.demoqa.com/authentication/CheckForAuthentication";
 RequestSpecification request = RestAssured.given();
 Response response = request.get();
 System.out.println("Status code: " + response.getStatusCode());
 System.out.println("Status message " + response.body().asString());
}

在上面的代码中,我们只是向端点发出HTTP GET请求。在此代码中,我们未添加任何授权标头。因此,预期的行为是我们将获得授权错误。如果运行此测试,您将获得以下输出。

Status code: 401
Status message: 
{
    "StatusID": "FAULT_USER_INVALID_USER_PASSWORD",
    "Status": "Invalid or expired Authentication key provided"
}

输出清楚地表明我们有“提供了无效或过期的验证密钥” 错误。这意味着没有身份验证信息或提供的信息无效。最终,服务器拒绝我们的请求并返回错误响应。

注意:请特别注意返回的状态代码。如果身份验证失败,服务器应以401未经授权的状态代码响应

尝试使用浏览器访问该URL。您应该得到一个用户名和密码提示。下图显示了当您从浏览器中访问此URL时应该获得的内容。

580bf7e132c088a6fdd016ea1d8ecc74.png

什么是授权?以及授权如何在REST WebServices中工作?

授权是授予某人访问权限的过程。如果您被授权,则可以访问该资源。现在要进行授权,您需要提供凭据,正如我们之前讨论的那样,该过程称为身份验证。因此,授权和认证是紧密相关的术语,通常可以互换使用。

在结束本教程之前,让我们在上述URL中查看私有资源的内容。为此,请输入以下凭据

用户名:ToolsQA

密码:TestPassword

服务器将能够进行身份验证,然后授权您访问私有资源内容。下图显示了成功认证后的内容。

9656d199311fcb8f635792806feb58bf.png

有了对身份验证和授权的基本了解, 下一篇章将讲述 REST API身份验证模型的特定类型。


END

时光,在物转星移中渐行渐远,春花一梦,流水无痕,没有在最想做的时候去做的事情,都是人生的遗憾。人生需要深思熟虑,也需要一时的冲动。

356072d96171fed825cd21c449bd8f70.gif

dd76f0e3d42ec7d13633926c5ca57a77.png

356072d96171fed825cd21c449bd8f70.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值