当前位置:  开发笔记 > 编程语言 > 正文

在Play上强制执行SSL!骨架

如何解决《在Play上强制执行SSL!骨架》经验,为你挑选了2个好方法。

我正在使用Play!1.2.2及其新的Netty客户端框架.

我没有找到一种直接的方法来强制执行SSL,尽管可以使HTTP和HTTPS异步服务.有没有人与Play合作过!有一个简单的方法来执行SSL?不确定我是否需要创建重定向,或者是否可以在conf文件中快速解决此问题.



1> Codemwnci..:

有几种方法可以强制执行SSL.

首先,您可以设置所有操作以使用该.secure()方法

index page

或者,也许最好的方法是通过前端HTTP服务器(如Apache,Nginx或Lighttpd)执行此操作.

前端http服务器的想法是,您的应用程序在端口9000上运行,但无法从外部网络访问.HTTP负责所有传入请求,并配置为仅接受HTTPS.HTTPS由HTTP服务器处理,然后请求转发到Play.

这使您的整个Play应用程序正常工作,并将SSL卸载到另一个应用程序.

这种方法可以应用于负载均衡器,而不是HTTP服务器,但我猜测大多数人会选择远远便宜的HTTP服务器,除非在企业环境中运行.



2> nylund..:

在控制器中,您可以检查request.secure并执行重定向或返回403 /拒绝访问.

您可以为整个控制器强制执行以下操作:

public static class ForceSSL extends Controller
{
    @Before
    static void verifySSL()
    {
        if (request.secure == false)
            redirect("https://" + request.host + request.url); 
    }
}

...并注释另一个控制器:

@With(ForceSSL.class)
public class Foo extends Controller
{
....
}

另请参阅 http://groups.google.com/group/play-framework/browse_thread/thread/7b9aa36be85d0f7b

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有