首页 > 解决方案 > 如何使用 RestAssured 向第三方系统进行身份验证

问题描述

我正在尝试使用 RestAssured 访问 Web 服务。我正在努力解决实际上由第三方系统执行的身份验证。详情如下:

  1. 我的 Web 服务在请求标头中需要会话 ID 和 Cookie。否则服务调用将失败。
  2. 为此,我需要在身份验证后获取 Session Id & Cookie。
  3. 身份验证由第三方服务完成,它使用 Windows 凭据进行身份验证。
  4. 当我在浏览器上启动我的应用程序 URL 时,说:“XYZ.com/dim”,它将使用如下 URL 重定向到身份验证服务:

http://hantweb.DOMAIN.com/authenticate/encdefault.asp?location=XYZ.com/dim

  1. 身份验证后,它将再次被重定向到实际应用程序。

我尝试了下面的代码,但它说:“ 401 - 未经授权:由于凭据无效,访问被拒绝。 ”即使我的凭据是正确的。

RestAssured.given().auth().basic("userID", "password").get("http://hantweb.DOMAIN.com/authenticate/encdefault.asp?location=XYZ.com/dim")

我很困惑不知道我在这里错过了什么..

标签: web-servicesrest-assured

解决方案


我做了一些试验和错误,终于明白我需要.auth().ntlm(userId, password,"","")用作身份验证。在这里,我使用 Windows 凭据作为基本凭据,否则任何其他身份验证类型在这种情况下都不起作用。这个答案可以帮助有需要的人。


推荐阅读