我在GCP上有一个Ubuntu22.04VM,我安装了Apache 9并下载了Geoserver 2.21.0,此时我可以使用外部IP和端口8080登录。
之后,我在GCP和SSL证书中创建了一个外部全局负载均衡器,以便能够获取,并且能够使用外部IP和端口8080登录,但不能从https站点登录。在尝试登录时,我得到了一个错误的用户名和密码,同时我可以使用外部IP和端口8080登录。
为了解决这个问题,我修改了Geoserver的全局设置,并将https地址与/geoserver/在末尾添加为代理基URL,此时我可以登录,但如果我试图保存任何更改,则会出现以下错误:
HTTP 400 -坏请求起源不对应于请求,客户端发送的要求在语法上是不正确的,Apache /9.0.58 (Ubuntu)
解决此问题的唯一方法是将代理基URL保留为空白,但我回到了第一个问题,即不能通过https地址登录,只能从IP外部地址和端口登录。
有人有这个问题并找到了解决办法吗?我一直在阅读Geoserver文件和许多论坛帖子,但我一直无法找到一个明确的解决方案。
发布于 2022-07-29 09:43:17
听起来你有个CSRF问题--参见文档。
此问题的症状可能包括WPS请求生成器(和其他wicket页)失败,HTTP状态为403,消息“原产地与请求不相对应”。但是,您可能需要在调试器中查看页面响应才能看到这一点,对于最终用户来说,它将显示为页面的窗体部分刚刚丢失。
解决办法是
若要允许使用CSRF筛选器列出代理,可以使用GEOSERVER_CSRF_WHITELIST属性.此属性是窗体的逗号分隔的域列表,可以包含子域。这些属性中的每一个都是通过一种标准方法来设置的:
-DGEOSERVER_CSRF_WHITELIST=example.orgexport GEOSERVER_CSRF_WHITELIST=example.orghttps://stackoverflow.com/questions/73160762
复制相似问题