QAF配置NTLMAuthClient后发起NTLM请求仍报401 Unauthorized错误
问题根因
你当前的请求配置和NTLMAuthClient的工作逻辑冲突:NTLMAuthClient会自动处理NTLM认证握手,不需要手动在请求头添加Authorization字段。你在模板里配置的结构化Authorization内容不符合HTTP NTLM认证的标准格式,会被服务器直接拒绝。
修复步骤
- 删掉JSON请求模板
headers节点下的整个Authorization字段配置,不要手动设置该请求头。 - 在项目全局属性文件(通常是
application.properties/test.properties)中添加NTLM认证参数,不要写在单请求模板内:ntlm.user=实际用户名 ntlm.password=实际密码 ntlm.domain=实际域 # 如有需要可额外配置ntlm.workstation参数指定工作站名 - 确认
rest.client.impl=com.qmetry.qaf.automation.ws.client.NTLMAuthClient配置放在全局属性文件中,确保所有WebService请求默认使用该客户端实现。 - 检查项目依赖的
httpclient、httpcore组件版本:QAF 2.1.14和Selenium 3.141.59均要求httpclient版本为4.5.x系列,版本冲突会导致NTLM认证逻辑失效。
验证方式
修复后重跑请求,查看QMetry请求日志,不会再出现手动配置的结构化Authorization头,客户端会自动完成NTLM三次握手流程,正常请求会返回对应业务状态码。
内容的提问来源于stack exchange,提问作者xReidx
相关产品推荐
相关产品推荐

