我正在构建一个 Spring Boot 应用程序,其中还包含 Spring Security 和 Thymeleaf。我已将此应用程序部署在AWS的弹性容器服务(ECS)集群中。
我有一个简单的主页控制器代码,看起来像
return "redirect:/login"
。但一旦我进入主页,它就会将网址转换为 http 而不是 https。
整个应用程序可以通过 https://abcd.com/login 访问,但是 thymeleaf 的 “重定向”路由始终将其重定向到无法访问的 http://abcd.com/login。 任何人都可以帮忙解决这个问题吗?
ECS 还具有一项服务、一项负载均衡器和一项用于将名称转换为 IP 地址的 Route53。
听起来您正在使用 https 卸载运行(这意味着您的 Spring Boot 应用程序没有收到 https 请求,而是收到了 http 请求,负载均衡器终止了 tls 连接)。
我认为您的问题已在 spring boot 文档中描述。 在大多数情况下,解决方案是在 application.yaml 中设置
server.forward-headers-strategy=NATIVE
。