我正在尝试配置一个众所周知的事件管理工具,以对 Jenkins 作业构建 URL 执行 POST 请求,以响应某些警报。
在这个工具中,由于某种原因我无法将Jenkins作业构建端点如下:
https://<user>:<apiToken>@my-jenkins.com/blabla/job/blabla/build?token=<myTokenName>
因此,该工具提供的唯一替代方案是将授权详细信息作为标题。
在此之前,我尝试使用 curl
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:未授权(用户的密码/令牌无效:my-user)。如果我在 URL 中放置与第一个代码片段相同的凭据,它就会起作用。
我已阅读以下文档:https://wiki.jenkins.io/display/JENKINS/Authenticating+scripted+clients,似乎设置基本身份验证标头非常简单,但我认为我错过了一些东西在这里,因为当我使用 curl
时它对我不起作用。我还用 Google 搜索了一下,似乎每个人都在 URL 中使用
user:apiToken
来调用 Jenkins 作业构建 URL,但正如我提到的,该工具不允许放置这样的 URL。
有人用基本的身份验证标头执行过 Jenkins 工作启动吗?
如有任何帮助,我们将不胜感激。非常感谢!
我对 Postman 做了同样的事情来生成身份验证标头,现在它正在工作......
希望能以某种方式帮助某人。
upstream app {
server jenkin_internal_ip:8080;
}
server {
listen 80 default_server;
charset utf-8;
location / {
include proxy_params;
proxy_set_header Authorization $http_jenkins_authorization;
proxy_pass http://app;
proxy_redirect off;
}
}
echo -n username:pass | base64
-n 标志将从您输入的 Base64 二进制文件中删除换行符。并且,然后可以用作,
curl -X POST --header "Authorization: Basic <your_base64_encrypted_value==>" "https://jenkins.url/job/jobname/buildWithParameters?token=token_value¶m1=value1"