GitLab流水线调用Artifactory AQL搜索报403:Props Authentication Token not found
解决Artifactory AQL请求403(Props Authentication Token not found)问题
修正请求头的Content-Type
AQL接口要求请求头的content-type必须为application/json,而非text/plain。本地IntelliJ可能兼容宽松的格式,但GitLab流水线环境下Artifactory会严格校验这个字段。修改请求头如下:headers = {'X-JFrog-Art-Api': token, 'content-type': "application/json"}确认服务账号的权限配置
即使账号标记为"拥有全部权限",也需要检查两个关键点:- 该服务账号对目标镜像仓库拥有读取权限;
- 在Artifactory权限管理中,给账号分配的权限组已启用
Allow AQL Access选项。
部分场景下,"全部权限"的预设可能不包含AQL操作的授权,需要手动确认并开启。
重新生成并验证API密钥
服务账号的API密钥可能因过期、权限变更或生成异常失效。尝试重新生成该账号的API密钥,替换GitLab流水线中的旧密钥后重试。本地测试使用的可能是个人账号密钥,权限逻辑与服务账号存在差异。检查GitLab流水线的变量传递
确保流水线中存储的API密钥变量没有被转义、截断或遗漏。可以添加调试步骤,输出密钥的前3-4位(避免泄露完整密钥),确认变量已正确传递到请求的X-JFrog-Art-Api头中。
内容的提问来源于stack exchange,提问作者Fabian
相关产品推荐
相关产品推荐

