2

我正在尝试使用 Jenkins 和 Kiln 存储库设置持续集成场景。我遇到的问题是在 Kiln 中设置一个 Jenkins webhook。

我在构建触发器中有一个带有身份验证令牌的 Jenkins 构建作业。还有一个 Jenkins 用户也有一个身份验证令牌。

使用 curl,我可以成功触发 Jenkins 构建:

curl -i https://<user>:<user-token>@ci.server.com/job/<jobname>/build?token=<build-token>

但是,Kiln 的 webhook 总是失败并返回 403:

Connection: close
X-Content-Type-Options: nosniff
X-Hudson: 1.395
X-Jenkins: 2.10
X-Jenkins-Session: ce44f96b
X-You-Are-Authenticated-As: anonymous
X-You-Are-In-Group: 
X-Required-Permission: hudson.model.Hudson.Read
X-Permission-Implied-By: hudson.security.Permission.GenericRead,hudson.model.Hudson.Administer
Content-Length: 985
Content-Type: text/html;charset=UTF-8
Date: Sun, 26 Jun 2016 14:29:56 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: JSESSIONID.8ae67724=1gh7svgbt5la719xs8ivdafz8h;Path=/;Secure;HttpOnly
Server: nginx

显然,“身份验证为:匿名”似乎有问题。我已经尝试在 Kiln 中创建一个 Jenkins/Hudson 特定的 webhook 和一个自定义 webhook。

任何关于可能缺少什么的线索将不胜感激。

干杯,迈克尔

4

1 回答 1

1

我认为 Kiln 正在发送 POST - 尝试将 curl 作为 POST 重复。

这可能会提供一个线索——我发现了一个与“crumbs”相关的错误,这是 Jenkins 2 中添加的 CSRF 保护。

由于我找不到说服 Kiln 发送 GET 的方法(我对 Kiln Webhooks 一点也不印象深刻),作为一种解决方法,我在 Jenkins 上禁用了 CSRF 保护。一点都不满足,需求是必须的。

于 2016-12-06T18:43:55.113 回答