【Jenkins+gitee+docker实现CI/CD(之三)】 jenkins拉取gitee代码WebHook返回403或404错误
<p> </p><p>先上几张让我纠结了很多天的截图</p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105153654858-1220199055.png" alt="" loading="lazy"></p>
<p> </p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105153855762-621431420.png" alt="" loading="lazy"></p>
<p> </p>
<p>以上是在我配置好jenkins和gitee令牌后一直出现的错误,</p>
<p>查询了很多天资料后,确认造成的主要原因就是权限问题</p>
<p>我的Jenkins 是最新的版本2.426.2,说下以下我使用过但无效果的办法,这些方法不能解决我提交代码后Jenkins触发WebHook的403问题</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 1,修改jenkins.service文件中的csrf开关 【无效】</span>
vim /usr/lib/systemd/system/jenkins.service
Environment="JAVA_OPTS=-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 2,修改config.xml文件中的csrf开关 【无效】</span>
vim /root/.jenkins/config.xml
<crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer">
<excludeClientIPFromCrumb><span style="color: rgba(0, 0, 255, 1)">true</span></excludeClientIPFromCrumb>
</crumbIssuer>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 3,修改系统管理->全局安全配置中的(匿名用户具有可读权限)+(启用代理兼容)【无效】</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 4,修改系统管理->全局安全配置-> 工具和动作 -> 脚本命令行 中的(关闭csrf开关)【无效】</span>
Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
// 此步与第一步上效果一样,只是运行命令行后jenkins重启后需要重新执行,第一步中写入配置文件中一直执行
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 5,查看jenkins在服务器上的出行端口一否开放【一直开放中】</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 6,查看服务器防火墙状态【一直开放中】</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 7,更换jenkins中使用的gitee令牌【无效】</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 8,更换gitee中的jenkins中的WebHook 密码/签名密钥和URL【无效】</span><span style="color: rgba(0, 128, 0, 1)">
//</span><span style="color: rgba(0, 128, 0, 1)"> 9,使用(http://jenkins用户名:jenkins密码@url:8080/jenkins/gitee-project/vue3-admin)+ 签名密钥【无效】</span></pre>
</div>
<p> </p>
<p>解决办法:不使用jenkins的签名密钥和项目URL去触发GITEE的WebHook,而是使用token鉴权。</p>
<p>1,安装生成token的jenkins插件(Generic Webhook Trigger)</p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105160104052-730687445.png" alt="" loading="lazy"></p>
<p> 2,生成token,并配置jenkins项目中的token</p>
<p> </p>
<p> </p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105160227847-1216414500.png" alt="" loading="lazy"></p>
<p> </p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105160303315-277694066.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p> </p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105161933711-813864741.png" alt="" loading="lazy"></p>
<p> </p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105160646740-1880465779.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105160611543-1595441953.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre>http://你的jenkins地址:8080/generic-webhook-trigger/invoke?token=11ee5afsdfsdfdsfsdf</pre>
</div>
<p> </p>
<p>3,配置gitee中的WebHook</p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105161053450-178473729.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p>4,点击重新发送或使用其他git工具提交gitee代码,就可以触发jenkins自动构建啦</p>
<p><img src="https://img2024.cnblogs.com/blog/794560/202401/794560-20240105161215788-1997717610.png" alt="" loading="lazy"></p>
<p> </p><br><br>
来源:https://www.cnblogs.com/zhixi/p/17947502
頁:
[1]