【发布时间】:2019-07-03 09:35:55
【问题描述】:
我正在尝试配置一个著名的事件管理工具,以向 Jenkins 作业构建 URL 执行 POST 请求,以响应一些警报。
在此工具中,出于某种原因我无法将 Jenkins 作业构建端点如下:
https://<user>:<apiToken>@my-jenkins.com/blabla/job/blabla/build?token=<myTokenName>
因此,该工具提供的唯一替代方法是将授权详细信息作为标题。
在此之前,我正在尝试检查这是否可行,使用curl。因此,我使用 Basic auth 标头调用 Jenkins URL,并使用以下 curl 命令:
curl -X POST -H 'Authorization:Basic <user:apiToken in base64>' -H 'Jenkins-Crumb:<my-crumb>' 'https://my-jenkins.com/blabla/job/blabla/build?token=<myTokenName>'
但是给了我一个 401: Not authorized (Invalid password/token for user: my-user)。如果我在 URL 中放置与第一个代码 sn-p 相同的凭据,它就可以工作。
我已阅读以下文档:https://wiki.jenkins.io/display/JENKINS/Authenticating+scripted+clients,似乎设置 Basic auth 标头非常简单,但我认为我在这里遗漏了一些东西,因为当我使用 curl 时它对我不起作用。
我也用谷歌搜索了一下,似乎每个人都在 URL 中使用 user:apiToken 调用 Jenkins 作业构建 URL,但正如我所提到的,该工具不允许放置这样的 URL。
是否有人使用基本身份验证标头执行 Jenkins 作业启动?
任何帮助将不胜感激。非常感谢!
【问题讨论】: