詹金斯 "Error 403 No valid crumb was included in the request"
Jenkins "Error 403 No valid crumb was included in the request"
我正在尝试通过来自我的 Windows 计算机的 post 请求触发 Jenkins 构建,使用以下命令。
首先,我使用...
获得面包屑
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> 之间的所有内容), token 匹配我在 Jenkins 中指定的令牌。但是,我还是收到了回复
Error 403 No valid crumb was included in the request
在配置全局安全 -> CSRF 保护中,我还检查了 "Enable proxy compatibility" 并且正在使用 "Default Crumb Issuer"。
我是不是遗漏了什么?忘记任何步骤?命令格式不正确?您还能想到什么?
我已经按照这些步骤格式化了我的命令,就像这里的解决方案一样,但仍然没有成功..
https://linuxacademy.com/community/posts/show/topic/28964-no-valid-crumb-was-included-in-the-request
除此之外,我还尝试保存第一个请求中的 cookie 以获取面包屑,然后将保存 cookie 的文件传递到第二个 curl 命令中,请参见下面的命令。我仍然收到 403 No valid crumb...
以下是使用 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
我终于找到了答案。我以为我可以指定我的实际帐户密码,但事实证明我 需要 使用 API 令牌进行身份验证。在带有 cookie 的上述命令中使用 API 令牌而不是我的密码允许我远程触发我的构建。
我正在尝试通过来自我的 Windows 计算机的 post 请求触发 Jenkins 构建,使用以下命令。
首先,我使用...
获得面包屑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> 之间的所有内容), token 匹配我在 Jenkins 中指定的令牌。但是,我还是收到了回复
Error 403 No valid crumb was included in the request
在配置全局安全 -> CSRF 保护中,我还检查了 "Enable proxy compatibility" 并且正在使用 "Default Crumb Issuer"。
我是不是遗漏了什么?忘记任何步骤?命令格式不正确?您还能想到什么?
我已经按照这些步骤格式化了我的命令,就像这里的解决方案一样,但仍然没有成功..
https://linuxacademy.com/community/posts/show/topic/28964-no-valid-crumb-was-included-in-the-request
除此之外,我还尝试保存第一个请求中的 cookie 以获取面包屑,然后将保存 cookie 的文件传递到第二个 curl 命令中,请参见下面的命令。我仍然收到 403 No valid crumb...
以下是使用 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
我终于找到了答案。我以为我可以指定我的实际帐户密码,但事实证明我 需要 使用 API 令牌进行身份验证。在带有 cookie 的上述命令中使用 API 令牌而不是我的密码允许我远程触发我的构建。