【问题标题】:Trigger Jenkins job via Slack command - 403_client_error通过 Slack 命令触发 Jenkins 作业 - 403_client_error
【发布时间】:2019-02-20 20:52:05
【问题描述】:

我正在尝试做一件我认为非常简单的事情 - 从 slack 中的斜杠命令触发 Jenkins 作业。我想在 slack 中输入/dump,这应该会触发特定的詹金斯工作。我正在使用Slack Slash command 来实现这一点,并且设置非常简单——输入命令,输入 URL,选择 POST/GET 方法。

我尝试了两种方法 - 首先是使用 this tutorial 之后的 Build Authorization Token Root Plugin - 在这种情况下,我配置了 Slack 斜杠命令以在 URL 上发出 GET 请求:http://jenkins_url:8080/job/db-dump-setup/build?token=MY_TOKEN - 如果我将 URL 放到我的浏览器中,作业被触发,如果我运行/dump 命令,slack 会响应:

slackbot [3:41 PM]
Darn - that slash command didn't work (error message: `403_client_error`). Manage the command at text.

我尝试的第二种方法是关注this tutorial。在这种情况下,我在 Jenkins 中创建了新用户并获得了 API 令牌。从我的终端运行此命令时:curl -X POST http://USER:TOKEN@slack_url:8080/job/db-dump-setup/build,作业再次被触发,但是当使用相同的 URL 配置 Slack 斜杠命令并发出 POST 请求时,我得到相同的错误:403_client_error

我试图用谷歌搜索这个特定的错误,但没有发现任何有用的信息,也没有更多关于该错误的详细信息或任何可以帮助我进一步解决此问题的日志。

任何人遇到类似的事情并知道我该如何解决这个问题?

【问题讨论】:

    标签: jenkins slack


    【解决方案1】:

    我能够解决此问题,因此在其他人遇到此问题时回答我自己的问题。为了使第一个案例工作(使用 GET 请求),我必须在 Jenkins 中启用“允许匿名读取访问”,在 Manage Jenkins -> Configure Global Security 按照下面的屏幕截图。

    【讨论】:

    • @Pert Hecko 它对我不起作用。我们还能做什么?
    • @SobhitSharma 检查上面的回复以获取经过身份验证的呼叫,这对我来说很好
    • 我猜允许匿名用户不是正确的做法。
    • 执行此操作后,Jenkins 不允许我登录应用程序
    【解决方案2】:

    您不需要启用匿名访问。您的 jenkins 需要身份验证。更新您的 url,如 http://user:auth-token@jenkins-host:port.Auth 令牌可以在以下 URL JENKINS_HOST/me/configure 生成

    【讨论】:

    • 谢谢@karan!是的,我们实际上在几个月前对 jenkins 的匿名访问存在一些安全问题,并且从那时起就使用经过身份验证的 URL - 这样的东西适用于我们的斜杠命令:https://<user>:<auth_token>@<jenkins_url>/job/<job_name>/build?token=<token>
    • 如果 Jenkins 经过 SAML 身份验证,这将如何工作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2022-10-20
    相关资源
    最近更新 更多