使用Spring Security需要通道和Amazon Elastic Load Balancer的登录循环

前端之家收集整理的这篇文章主要介绍了使用Spring Security需要通道和Amazon Elastic Load Balancer的登录循环前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试使用Amazon Elastic Load Balancer(ELB)在服务器上运行Spring安全性. ELB在端口80上配置为在端口8080和端口443上转发到我的应用程序以转发到8080.

每当我访问此页面时,我都会进入登录循环.不知道怎么解决这个问题?不确定Spring Security是否存在问题,因为ELB是从端口8080的https端口443到我的应用程序的前向流量.

最佳答案
事实证明,Spring Security使用ServletRequest.getServerPort()来确定它是否使用安全端口.我的tomcat是使用8080和8443配置的,所以当ELB将请求从443转发到8443的内部tomcat时,webapp不接受这个作为安全端口:

20 Jun 18:16:49,184 ["http-bio-8443"-exec-5] DEBUG org.springframework.security. web.access.channel.RetryWithHttpsEntryPoint  - Redirecting to: /login.xhtml

我也试过使用代理端口,但无法让它工作.
此外,如果您将spring安全端口配置为使用8443,那么它不会正确地重定向(它会将应用程序重定向到8443,而外部不存在).

长话短说……以下设置有效:
ELB向前80-> 80和443-> 443.
设置tomcat使用80和443.
设置端口映射以在Spring Security上使用80和443

猜你在找的Spring相关文章