Geoserver从2.26升级至2.27后无法登录Web UI的问题
GeoServer 2.27.4升级后CSP登录报错解决方法
1. 内联样式被CSP拦截的解决
GeoServer 2.27.x默认启用基于nonce的Content-Security-Policy(CSP)规则,未携带对应nonce的内联样式会被阻止。在WEB-INF/web.xml中添加以下配置,放宽style-src规则:
<context-param> <param-name>GEOSERVER_CSP_RULES</param-name> <param-value>style-src 'self' 'unsafe-inline' 'nonce-${nonce}';</param-value> </context-param>
2. j_spring_security_check违反form-action规则的解决
该问题源于反向代理下表单提交地址与CSP的'self'规则不匹配,需两步调整:
- 完善CSRF白名单,包含完整访问协议(如http/https)和域名:
<context-param> <param-name>GEOSERVER_CSRF_WHITELIST</param-name> <param-value>http://server.com,server.com</param-value> </context-param> - 调整CSP的form-action规则,显式允许目标域名,合并到之前的
GEOSERVER_CSP_RULES中:<context-param> <param-name>GEOSERVER_CSP_RULES</param-name> <param-value>style-src 'self' 'unsafe-inline' 'nonce-${nonce}'; form-action 'self' http://server.com;</param-value> </context-param>
后续操作
- 保存修改后的
web.xml - 重启Tomcat服务
- 清除浏览器缓存后重新测试登录
注意:如果实际使用HTTPS访问,需将配置中的
http://server.com替换为https://server.com
内容的提问来源于stack exchange,提问作者minisaurus
相关产品推荐
相关产品推荐

