[英]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.