jenkins 403错误403请求中未包含有效的crumb

7eumitmz  于 2023-02-03  发布在  Jenkins
关注(0)|答案(2)|浏览(207)

我正尝试使用以下命令从Windows计算机触发Jenkins的post构建请求。
首先,我用...
curl http://JENKINS-URL/crumbIssuer/api/xml?xpath=//crumb
答案是这样的...
<crumb>string-of-digits<\crumb>
然后使用以下命令
curl -u USERNAME:PASSWORD -X POST -H "Jenkins-Crumb:string-of-digits" http://JENKINS-URL/job/my-job/buildWithParameters?token=my-token
用户名正确,密码正确,crumb与我从第一个命令中获得的数字字符串完全相同(介于开头的crumb〉和结尾的〈\crumb〉之间的所有字符),令牌与我在Jenkins中指定的令牌匹配。
Error 403 No valid crumb was included in the request
在配置全局安全-〉CSRF保护,我也有“启用代理兼容性”选中,并使用“默认Crumb发行者”。
我看起来像是漏掉了什么吗?忘记了任何步骤?格式不正确的命令?还有什么你能想到的吗?
我已经按照步骤和格式化我的命令一样,解决方案在这里以及,仍然没有运气。
https://linuxacademy.com/community/posts/show/topic/28964-no-valid-crumb-was-included-in-the-request
除此之外,我还尝试保存第一个请求中的cookie以获取crumb,然后将保存cookie的文件传递到第二个curl命令中,请参阅下面的命令。
以下是使用Cookie的命令...

wget --keep-session-cookies --save-cookies cookies.txt --auth-no-challenge --user admin --password my_password -q --output-document - http://JENKINS-URL/crumbIssuer/api/xml?xpath=//crumb

curl --cookie cookies.txt -u admin:my_password -H "JenkinsCrumb: string-of-digits-from-stdout" -X POST http://JENKINS-URL/job/my-job/buildWithParameters?token=my-token
w3nuxt5m

w3nuxt5m1#

我终于找到了答案。我以为我可以指定我的实际帐户密码,但事实证明,我 * 需要 * 使用API令牌来进行身份验证。在上面的命令中使用API令牌而不是密码与cookie允许我远程触发我的构建。

ltskdhd1

ltskdhd12#

enter image description here
我最终通过在安全领域中选择jenkins自己的用户数据库解决了这个问题

相关问题