【问题标题】:Jenkins HTTP Request plugin authorization error for secret text密文的 Jenkins HTTP 请求插件授权错误
【发布时间】:2022-07-11 18:41:26
【问题描述】:

我正在使用 Jenkins 中的 Http Request 插件向 API 运行 HTTP 请求。 我需要使用令牌进行授权。所以我在 Jenkins 全局配置中配置了一个带有令牌的秘密文本凭证,并给它 id segron。 然后我像这样在 Jenkins 中运行 API 调用 httpRequest url: "http://10.10.10.10:8080/api/run/", httpMode: 'POST', contentType:'APPLICATION_JSON',authentication: 'segron'.

但是当我运行管道时,我得到了这个错误。 java.lang.IllegalStateException: Authentication 'segron' doesn't exist anymore 我使用相同的插件使用用户名/密码作为凭据来运行其他 API 调用,它工作得非常好。

对此有任何帮助/经验吗?

【问题讨论】:

    标签: jenkins httprequest jenkins-plugins


    【解决方案1】:

    我遇到了类似的问题。在我的情况下,Http Request 插件不喜欢在 Jenkins 中存储为“秘密文本”的 API 令牌。

    将其更改为用户名/密码凭据类型后,它对我有用。

    • 用户名设置为拥有 API 令牌的用户
    • 密码字段从 Bitbucket 获取 API-token

    这有点出乎意料,因为像 notfiyBitbucket 这样的 Bitbucket 相关 API 与秘密文本凭据中的 API-token 配合得非常好,但 Http Request 插件似乎不支持这一点。 但它确实可以反过来工作,notifyBitbucket 也适用于用户名/密码凭据类型,因此现在不需要存储 API 令牌两次。

    我认为这是引发异常的地方:https://github.com/jenkinsci/http-request-plugin/blob/master/src/main/java/jenkins/plugins/http_request/HttpRequestExecution.java#L239 查看上面的行,似乎只支持一组有限的凭据类型。该异常可能至少应该发出一条更具描述性的错误消息,以了解问题所在。

    【讨论】:

      猜你喜欢
      • 2021-05-12
      • 1970-01-01
      • 2021-04-04
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      • 2017-06-22
      相关资源
      最近更新 更多