【问题标题】:jenkins.build.log() is rejected with jenkins: build.log: forbiddenjenkins.build.log() 被 jenkins 拒绝: build.log: 禁止
【发布时间】:2017-04-14 13:09:46
【问题描述】:

我编写了一个与 jenkins 交互并使用 node-jenkins 的 node.js 应用程序。

它适用于jenkins.job.getjenkins.build.get 等API,但是当我尝试使用jenkins.build.logjenkins.build.logStream 时,它会失败并出现错误:jenkins: build.log: forbidden

失败响应中返回的消息是No valid crumb was included in the request

我做错了什么?

(我也为此打开了an issue

我们使用 Jenkins 版本 2.7.1。

编辑:如果我使用POST 发送与http.request 相同的URL (/job‌​/MY_JOB/my_build_num‌​ber/logText/progress‌​iveText),我会得到相同的响应,但如果我使用GET,我会正确获取日志。

【问题讨论】:

  • 您可以尝试以某种方式记录发送给 Jenkins 的标头吗?
  • @Mr.Phoenix 是的,返回的错误包含它们:request.req2: {"auth":"my_username:my_pass","hostname":"my_host","port":"my_port","path":"/job/MY_JOB/my_build_number/logText/progressiveText","method":"POST","headers":{"referer":"http://my_username:my_pass@my_host:my_port/","content-type":"application/x-www-form-urlencoded; charset=utf-8","content-length":0}}
  • 据我所见,当某些标头未与请求一起发送或 csrf 检查失败或代理在两者之间时会发生这种错误消息,如果您查看 GitHub 存储库,则会返回 401詹金斯它已针对版本> 2进行了修补。重新检查客户端和 Jenkins 上的配置,您可能遗漏了一些东西。在客户端的 GitHub 存储库中找到解决方案会更好。

标签: node.js jenkins


【解决方案1】:

node-jenkins作者silas回答my issue后,我发现了问题。我只需要将crumbIssuer: true 添加到我的jenkins 初始化代码中:

jenkins = require('jenkins')({ baseUrl: 'http://admin:admin@localhost:8080', crumbIssuer: true });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多