实现目标是 当项目代码由本地push至远程仓库后 立即触发Jenkins构建
遇到两个问题
其一 报错:
Error 403 No valid crumb was included in the request
这是因为Jenkins防止跨站点请求伪造这个功能未关闭
在Jenkins设置中反选此功能即可解决
另外 由于Jenkins新版本中不再提供防止跨站点请求伪造的勾选框 所以需要修改Jenkins启动项
小弟我的环境是docker里含Jenkins 所以:
进入docker容器中
docker exec -u root -it jenkins bash
找到 配置文件
vim/usr/local/bin/jenkins.sh
(docker内部可能不支持vim 需要先安装一下sudo apt-get install vim)
找到exec java 添加:
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
重启jenkins容器
docker restart jenkins
查看跨站请求伪造保护
如出现:This configuration is unavailable because the System property hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION is set to true.
That option should be considered unsupported and its use should be limited to working around compatibility problems until they are resolved.
则表示成功
其二 报错:
Authentication required
在Jenkins全局安全配置 授权策略 登录用户可以做任何事 下
勾选 匿名用户具有可读权限
即可解决