【问题标题】:Redirect controller methods in HTTPS Protocol in PlayframeworkPlayframework 中 HTTPS 协议中的重定向控制器方法
【发布时间】:2014-05-27 12:02:12
【问题描述】:

我们使用 Play 框架 1.2.x。

我们使用 Amazon ELB 来处理 SSL。因此,从浏览器到 Amazon ELB 的请求是 https。从 Amazon ELB 播放它的 http。

我们使用将一种控制器方法重定向到另一种。因此,当我们进行重定向时,当我们通过调用另一个控制器方法而不是 https 进行重定向时,播放总是发出 http 请求,因为它只接收 http 请求。但是当我们从一个控制器方法重定向到另一个控制器方法时,我想指定协议

【问题讨论】:

    标签: redirect amazon-web-services playframework-1.x


    【解决方案1】:

    请在您的application.conf 中包含该代码:

    application.baseUrl=https://example.com/
    XForwardedSupport=all
    XForwardedProto=https
    application.session.httpOnly=true
    application.session.secure=true
    

    我的应用程序包含以上所有内容,并且已经正常运行了 2 年。

    【讨论】:

    • XForwardedSupport=all 为我工作,无需任何其他配置。我不确定为什么它可以在没有 XForwardedSupport 的情况下与 http 一起使用,但在使用 https 时会失败。
    • XForwardedProto=https 仅在您有反向代理(负载平衡器)时使用,该代理通过 HTTPS 进行控制,然后通过 HTTP 与 Web 服务器通信。如果您没有控制 HTTPS 的反向代理,则可以删除该行。但我认为你可以毫无风险地加入。 :)
    • 在我的情况下,终止 HTTPS 的代理 (ELB) 包括 X-Forwarded-Proto 作为 HTTPS,播放正确检测。
    • 啊,没错。 XForwardedProto 仅在 ELB 不转发 HTTPS 播放时才有用。
    【解决方案2】:

    将 application.conf 中的 baseUrl 属性设置为如下所示:

    baseUrl=https://myserver.com/myapp    
    

    【讨论】:

      猜你喜欢
      • 2013-10-22
      • 2014-07-03
      • 2015-08-17
      • 1970-01-01
      • 2011-02-22
      • 2012-05-27
      • 2012-11-18
      • 1970-01-01
      • 2011-01-19
      相关资源
      最近更新 更多