我正在尝试配置众所周知的事件管理工具,以对詹金斯作业构建URL执行邮政请求以响应某些警报。
在此工具中,出于某种原因我不能放置 jenkins作业构建端点如下:
https://<user>:<apiToken>@my-jenkins.com/blabla/job/blabla/build?token=<myTokenName>
因此,该工具提供的唯一替代方法是将授权详细信息作为标题。
。在这样做之前,我正在尝试检查是否有效,使用curl
。因此,我将其称为Jenkins URL带有基本auth标题,并使用以下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/jenkins/authenticating scripted clients,似乎设置了基本的auth标题很简单,但是我认为我想念一些东西在这里,因为我使用curl
时对我不起作用。
我还谷歌搜索了一点,似乎每个人都在URL中使用user:apiToken
称呼jenkins构建URL,但是正如我提到的那样,该工具不允许将URL放置。
是否有人使用基本的auth标题进行了詹金斯的作业?
任何帮助将不胜感激。非常感谢!
好吧...相当尴尬,但看来我正在用macos命令行壳生成base64字符串,但它不起作用。
我与Postman同样的事情生成了auth标题,现在它正在工作...
希望对某人有所帮助。
我面临同一问题。以下是我的解决方案。
- 使用IAP&amp;在詹金斯面前
- 使用新标头来为詹金斯而不是"授权"。对我来说,我使用了"詹金斯 - 授权"标题。
- 在nginx配置中,我使用" proxy_set_header"来设置" jenkins-perorization"的"授权"标题。
- 在nginx配置中,使用内部IP
nginx配置:
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;
}
}
- 请记住,nginx配置中的" jenkin_internal_ip"作为jenkins内部IP。