程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

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

发布于2023-04-27 07:06     阅读(1132)     评论(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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0
收藏该文
已收藏

评论内容:(最多支持255个字符)