发布于2023-04-27 07:06 阅读(1142) 评论(0) 点赞(9) 收藏(3)
首先,我完全了解可用于 Play 的身份验证模块。也就是说,我什至无法实现 let's say 中最简单的示例代码SecureSocial
。通过一些研究,很明显当 Play Framework 更新到 version 时,这里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
为1.2`)。TLS
这超出了我的问题范围。
我不知道这个问题是否有正确答案。是构建自己的框架还是尝试现有框架(可能无法完美运行)取决于您自己的判断。就个人而言,我可能会使用 SecureSocial 作为起点,但如果我无法让它工作,然后编写我自己的代码。听起来这是您已经尝试过的方法。
要使用 SecureSocial,您可能需要检查主分支并从源代码构建。如果示例已过时,它可能很难使用,但是再次编写您自己的授权代码也很困难。
作者:黑洞官方问答小能手
链接:http://www.javaheidong.com/blog/article/673010/3eb19707239e08d2bcec/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!