gpt4 book ai didi

post - Jenkins 输入管道步骤通过带有 CSRF 的 POST 填充 - 如何?

转载 作者:行者123 更新时间:2023-12-04 14:24:50 24 4
gpt4 key购买 nike

我有一个带有输入步骤的 Jenkins 管道,我想通过脚本提交这个输入(单字符串参数)。
到目前为止,我正在尝试使用 curl,理想情况下我将通过 Python requests 库发送它。这应该是一个简单的 POST 请求,但是使用 CSRF 就变得很棘手了。我已经获得了 Jenkins-Crumb(在这种情况下使用 curl,来自同一台机器和同一个 bash session ),但仍然无法发送内容......

我正在发送 Jenkins-Crumb:XXX标题,就像在 https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API 中解释的一样

我的请求是这样的:

curl -vvv -X POST --user '${USER}:${API_KEY}' -H "Jenkins-Crumb:${JENKINS_CRUMB}" -d 'json="{"parameter":{"name":"${PARAM_NAME}","value":"asd"},"Jenkins-Crumb":"${JENKINS_CRUMB}"}"' 'http://${JENKINS_URL}/job/${JOB_NAME}/${BUILD_NR}/input/'

我发布的 URL 与构建日志(控制台输出)中链接的 URL 相同。

最佳答案

我设法解决了这个问题。

希望其他人能从我的回答中受益,让我解释一下我是如何实现 OP 目标的。

Jenkis Pipeline 输入步骤所需要的只是一个格式正确的 JSON 和发送到正确 URL 的 OK 按钮标题。

所以,正确的语法是:

curl -X POST -H "Jenkins-Crumb:${JENKINS_CRUMB}" -d json='{"parameter": {"name": "${PARAMETER_NAME}", "value": "${PARAMETER_VALUE}"}}' -d proceed='${SUBMIT_CAPTION}' 'http://j${JENKINS_URL}/job/${JOB_NAME}/${BUILD_ID}/input/${INPUT_ID}/submit'

问候

关于post - Jenkins 输入管道步骤通过带有 CSRF 的 POST 填充 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38827523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com