Spring boot 需要HTTPS时使用HTTP的Spring安全重定向URL

Spring boot 需要HTTPS时使用HTTP的Spring安全重定向URL,spring-boot,apache,spring-security,jboss,Spring Boot,Apache,Spring Security,Jboss,我的项目架构由一个配置了SSL的负载平衡器组成。SSL配置在负载平衡器处终止,请求通过HTTP转发到WebServer和AppServer。当用户第一次访问应用程序时,Spring Security尝试使用HTTP协议重定向到登录页面。由于负载平衡器侦听HTTPS,因此此请求失败 考虑到WebServer总是在HTTP上转发给AppServer,在创建重定向请求时,如何确保Spring Security使用HTTPS协议 注意:AppServer是Jboss EAP 7.3对于当前的体系结构,我

我的项目架构由一个配置了SSL的负载平衡器组成。SSL配置在负载平衡器处终止,请求通过HTTP转发到WebServer和AppServer。当用户第一次访问应用程序时,Spring Security尝试使用HTTP协议重定向到登录页面。由于负载平衡器侦听HTTPS,因此此请求失败

考虑到WebServer总是在HTTP上转发给AppServer,在创建重定向请求时,如何确保Spring Security使用HTTPS协议


注意:AppServer是Jboss EAP 7.3

对于当前的体系结构,我无法从Spring boot中找出如何实现这一点。作为一种解决方法,我们在LoadBalancer上添加了一个IRule,它没有拒绝http请求,而是将它们重定向到HTTPS。

通常,简单的http到HTTPS重定向会让用户多跳一跳,因为他们将返回http,然后需要重定向。这可以是无痛的(尤其是你正在使用HST)。通常,从BIG-IP的角度来看,这样做的方式是插入https的X-Forwarded-Proto(xfp)头(您可以检查源是否在iRule中使用https,或者使用策略插入头)

另一部分是让Spring查看xfp头,而不是服务器URL,以确定请求使用的是https

您是否也尝试过删除重定向上的任何主机名或协议名?我们在任何重定向的相对引用方面都很幸运,但我仍然看到一些应用程序使用http发送302重定向,然后重定向病毒会反弹回https