【问题标题】:Spring security redirection URL using HTTP while HTTPS required使用 HTTP 和 HTTPS 的 Spring 安全重定向 URL
【发布时间】:2021-01-21 07:27:20
【问题描述】:

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

考虑到 WebServer 将始终通过 HTTP 转发到 AppServer,我应该如何确保 Spring Security 在创建重定向请求时使用 HTTPS 协议?

注意:AppServer 是 Jboss EAP 7.3

【问题讨论】:

标签: spring-boot apache spring-security jboss


【解决方案1】:

对于当前架构,我无法从 Spring Boot 中弄清楚如何做到这一点。作为一种解决方法,我们在 LoadBalancer 上添加了一个 IRule,它不会拒绝 http 请求,而是将它们重定向到 HTTPS。

【讨论】:

    【解决方案2】:

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

    另一部分是让 Spring 查看 xfp 标头而不是服务器 URL 来确定请求是否使用 https。

    您是否还尝试在重定向中消除任何主机或协议名称?我们对任何重定向的相对引用都很幸运,但我仍然看到一些应用程序使用 http 发送 302 重定向,然后重定向 iRule 会反弹回 https。

    【讨论】:

      猜你喜欢
      • 2018-06-15
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2019-03-02
      • 2015-11-02
      相关资源
      最近更新 更多