web-services - 如何使用 RestAssured 向第三方系统进行身份验证
问题描述
我正在尝试使用 RestAssured 访问 Web 服务。我正在努力解决实际上由第三方系统执行的身份验证。详情如下:
- 我的 Web 服务在请求标头中需要会话 ID 和 Cookie。否则服务调用将失败。
- 为此,我需要在身份验证后获取 Session Id & Cookie。
- 身份验证由第三方服务完成,它使用 Windows 凭据进行身份验证。
- 当我在浏览器上启动我的应用程序 URL 时,说:“XYZ.com/dim”,它将使用如下 URL 重定向到身份验证服务:
http://hantweb.DOMAIN.com/authenticate/encdefault.asp?location=XYZ.com/dim
- 身份验证后,它将再次被重定向到实际应用程序。
我尝试了下面的代码,但它说:“ 401 - 未经授权:由于凭据无效,访问被拒绝。 ”即使我的凭据是正确的。
RestAssured.given().auth().basic("userID", "password").get("http://hantweb.DOMAIN.com/authenticate/encdefault.asp?location=XYZ.com/dim")
我很困惑不知道我在这里错过了什么..
解决方案
我做了一些试验和错误,终于明白我需要.auth().ntlm(userId, password,"","")
用作身份验证。在这里,我使用 Windows 凭据作为基本凭据,否则任何其他身份验证类型在这种情况下都不起作用。这个答案可以帮助有需要的人。
推荐阅读
- python - 类中带有点击信号的动态按钮生成
- apache-spark - 在 RDD 中查找值的总和
- spring-websocket - websocket 握手异常:200
- html - 猫头鹰轮播中不需要的右边距
- date - 如何选择具有最新日期的所有值 Laravel 5.8
- python - 如何可移植地避免临时 python 文件导致的 tox 失败?
- postgresql - gobuffalo tx.Eager().Create 导致错误“无法将 '%!s(int64=15)' 设置为 '
’” - python - 使用熊猫将一行中的所有单元格值转换为字符串
- javascript - 标签结构适用于桌面但不适用于移动设备
- javascript - 从 VSCode 中的工作区解决 npm 依赖项?