gpt4 book ai didi

java - Spring Boot 身份验证负载均衡器 URL

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:31 25 4
gpt4 key购买 nike

我的环境目前如下所示(示例地址):

database <-> spring boot app (localhost:8080) <-> web-serwer(nginx) (localhost:8081)

应用程序使用身份验证(jdbc),这就是我的问题。

  1. 当当前用户未经过身份验证并尝试打开安全 URL(例如 localhost:8081/admin)时,它会被重定向到登录站点,但 URL 随后会变为 localhost:8080/login(嵌入式 tomcat 服务器),从那时起,每个请求都会直接向 tomcat 发出。
  2. 当当前用户未经过身份验证并尝试直接打开登录页面(localhost:8081/login)时,成功登录后,他会再次重定向到 tomcat url(localhost:8080)。
  3. 在未经身份验证的情况下或在(手动更改网址)浏览页面时,一切都按预期运行(基本网址保持不变)。

我猜这是关于 spring boot 身份验证配置的。有什么想法如何“修复”它,以便基本 URL 始终是负载均衡器的 URL 吗?使用AJP(atm简单重定向)可以解决这个问题吗?

最佳答案

您能否将重定向页面设置为“/login”,而不是在其中指定主机名? (我假设您正在这样做,但您没有提供有关如何从 Spring Security 配置 HttpSecurity 实例的代码。

如果这不起作用 - 很可能不会 - 您可能需要配置 Spring Security 以在其 XML 配置文件中禁用自动元数据生成。

事实上,Spring Security 的 Github 问题就是关于这个问题的,以及如何逐步修复它:Github Issue with this question, and its response

TL:DR: 删除(?) <security:custom-filter before="FIRST" ref="metadataGeneratorFilter"/>来自您的 securityContext.xml 文件:

我相信如果您这样做,它会将 URL 重置为仅使用 / ,而不是整个主机名,这应该可以工作。

关于java - Spring Boot 身份验证负载均衡器 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48465105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com