在Bitbucket服务器中管理webhooks。

问题描述 投票:0回答:1
  1. 当我从bitbucket服务器配置web-hooks时,有什么配置,我应该在Jenkins服务器上配置吗?是否有任何配置,我应该在Jenkins服务器上配置,例如:匿名用户的特殊权限......因为当我尝试测试连接时,我收到一个403错误。请看下面的错误细节。

enter image description here

  1. 在webhook中,Secret(Optiona) ,该字符串用于验证Bitbucket和你的端点之间的数据完整性。 我的端点是Jenkins服务器,有什么需要配置的吗?完整性检查是如何工作的?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 403 No valid crumb was included in the request</title>
</head>
<body><h2>HTTP ERROR 403 No valid crumb was included in the request</h2>
<table>
<tr><th>URI:</th><td>/job/api-xxxxxx/job/stg/job/xxxxxxxxxxx/</td></tr>
<tr><th>STATUS:</th><td>403</td></tr>
<tr><th>MESSAGE:</th><td>No valid crumb was included in the request</td></tr>
<tr><th>SERVLET:</th><td>Stapler</td></tr>
</table>
<hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.27.v20200227</a><hr/>

</body>
</html>

参考。https:/confluence.atlassian.combitbucketservisormanaging-webhooks-in-bitbucket-server-938025878.html。

jenkins jenkins-pipeline bitbucket bitbucket-server bitbucket-webhook
1个回答
0
投票

我也面临同样的错误。我可以给你建议一个可行的变通方法,但我不能保证它是安全的(使用基于令牌的验证)。

因为403状态码清楚地说明这个URL存在,但你的用户没有被授权访问这个URL。

下面是你如何让它工作。

导航到Jenkins > 管理Jenkins > 配置全局安全 > 在授权下选择基于矩阵的安全,并检查下面的选项。匿名用户:

---------------------------------------------
| User       | Overall | Job                |              
|--------------------------------------------                                           
| Anonymous  | Read    | Read, Workspace &  |
| user       |         | Build              |                                                           
--------------------------------------------

并保存更改。

之后在Jenkins中导航到你的工作> 配置> 构建触发器> 并选择 "远程触发构建(例如,从脚本)"

选择后,会出现一个文本框,上面有标签"认证令牌",在这里你可以生成一个令牌。在文本框中输入一些文字来生成令牌。例如,您输入了 誓言牌.

现在导航到Bit Bucket > Repository Settings > Webhook > 编辑并输入如下的URL。

JENKINS_URL/view/JenkinsViewName/job/JenkinsJobName/build?token=OathToken

在上面的URL替换以下。

JENKINS_URL - With you original Jenkins url (http://Domain/)
JenkinsViewName - With the view name in your Jenkins pipeline
JenkinsJobName - With the job name in your Jenkins pipeline
OathToken - With your original Token value

点击现在测试连接,它将返回201状态代码,它会触发构建后,在仓库的新推送。

再次请考虑你的安全偏好。

© www.soinside.com 2019 - 2024. All rights reserved.