Jenkins升级至2.289版本登录报错HTTP 403 No valid crumb如何解决
报错说明
你遇到的是Jenkins升级后CSRF校验失败报错,完整报错如下:
HTTP ERROR 403 No valid crumb was included in the request URI: /j_spring_security_check STATUS: 403 MESSAGE: No valid crumb was included in the request SERVLET: Stapler
根因
Jenkins 2.289.2 LTS版本优化了CSRF防护的crumb校验逻辑,对请求源、访问路径、代理头的匹配要求更严格,升级后配置不匹配就会触发该报错。
修复步骤
按优先级逐一尝试:
- 清除浏览器缓存与站点Cookie:删除当前Jenkins域名/IP对应的所有Cookie、本地缓存数据,重启浏览器后重新访问登录,80%以上的升级后偶发报错可通过该方式解决。
- 调整反向代理配置(如有Nginx/Apache等反向代理层):
必须在反向代理配置中添加正确的请求头透传规则,以Nginx为例,Jenkins对应的location配置块需要补充以下参数:
配置生效后重启反向代理服务,再尝试登录。proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-For $remote_addr; - 校验Jenkins访问路径与配置一致性:
如果启动Jenkins时指定了--prefix=/自定义路径的启动参数,访问时必须带对应前缀,路径不一致会导致crumb校验失败。同时可以在Jenkins启动参数中添加代理兼容参数适配:-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.PROXY_COMPATIBILITY=true - 临时应急方案(仅排查使用,不建议长期开启):
如需要紧急登录系统处理问题,可在Jenkins启动参数中添加如下参数临时关闭CSRF校验,登录调整完配置后必须移除该参数重启服务避免安全风险:-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
内容的提问来源于stack exchange,提问作者vs777
相关产品推荐
相关产品推荐

