繁体   English   中英

实施安全的本地Play Framework 2.3.x(Java样式)身份验证

[英]Implementing secure native Play Framework 2.3.x (Java style) authentication

首先,我完全了解Play可用的身份验证模块。 就是说,我什至无法实现来自SecureSocial的最简单的示例代码。 通过一点点研究,可以清楚地看到,当Play框架更新到2.3.x版时, 此处提供的示例代码中有很多东西已损坏。

借助于在线文档和Philip Johnson出色的视频教程的帮助,我成功地实现了以下方面:

// Class which is used by the @Security annotation
public class Secured extends Security.Authenticator {

    @Override
    public String getUsername(Context ctx) {
        return ctx.session().get("auth");
    }

    @Override
    public Result onUnauthorized(Context ctx) {
        return  redirect(routes.Application.login());
    }
}


// Controller class that serves routes
public class Application extends Controller {

    @Security.Authenticated(Secured.class)
    public static Result index() {
        return ok(index.render("Your new application is ready."));
    }

    public static Result login() {
        session().clear();
        session("auth", "a1234");   // dummy data simulating succesful login
        returning redirect(routes.Application.index());
    }
}

我最终需要实现一个安全的登录系统来对用户进行身份验证。

我的问题是两方面的。 以下是什么更好的选择:(至少部分)通过采用工作代码库并对其进行改进来“重新发明轮子”(或者至少部分地),或者为实现其中一个身份验证模块提供更多帮助?

我们大家都不喜欢重新发明轮子,也就是说,当我自己制作它的时候,我更有机会成功进行编译...

我知道,要获得有益的部门安全(又称分层安全),还需要一个安全的连接实现(在撰写本文时, HTTPS带有TLS 1.2`)。 这超出了我的问题范围。

我不知道这个问题是否有正确的答案。 是构建自己的框架还是尝试现有的框架(可能无法完美运行),这取决于您自己的判断。 就个人而言,我可能会以SecureSocial为起点​​,但是如果无法正常工作,请编写自己的代码。 听起来这是您已经尝试过的方法。

要使用SecureSocial,您可能需要检出master分支并从源代码构建。 如果示例已过时,可能很难使用,但是再次编写自己的身份验证代码也很困难。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM