当前位置: 首页 > 面试题库 >

Java Play!2-使用Cookie的用户管理

濮阳翔
2023-03-14
问题内容

我正在尝试通过Cookie管理我的用户。这不是那么容易,因为绝对没有关于此主题的文档。

借助示例“ zentask”,我做到了:

session("username", filledForm.field("username").value());

public class Secured{

    public static Session getSession() {
        return Context.current().session();
    }

    public static String getUsername() {
        return getSession().get("username");
    }

    public static boolean isAuthorized() throws Exception {
        String username = getUsername();
        if (username == null)
            return false;
        long userCount = DatabaseConnect.getInstance().getDatastore()
                .createQuery(User.class).field("username").equal(username)
                .countAll();

        if (userCount == 1)
            return true;

        return false;

    }

我正在这样使用它:

public static Result blank() throws Exception {

        if (Secured.isAuthorized())
            return ok(Secured.getUsername());
        else
            return ok(views.html.login.form.render(loginForm));

    }

现在我有几个问题/问题:

  • 1.)Cookie不会被删除,并且看起来总是一样的。例如bdb7f592f9d54837995f816498c0474031d44c1a-用户名%3Akantaki

  • 2.)Security.Authenticator类做什么?

  • 3.)我认为通过cookie进行用户管理是一个非常普遍的问题,play!2.0是否为我提供了完整的解决方案?还是至少有一些文档?


问题答案:

还有一个全栈authenticationauthorization-
发挥身份验证通过Joscha第k个。(可在GitHub上获得)

它合并了Java的 现成 示例,该示例使用了securesocial+完全Deadbolt
2
(由Steve Chaloner提供)支持的概念。它具有:

  • 内置的可能性registerlog in用户与电子邮件,谷歌,Facebook,Foursquare的,微博OpenID和自定义提供。
  • 多语言支持(当前:英语,德语,波兰语)
  • 可自定义的模板(也用于参考电子邮件)
  • 支持rolespermissions(通过Deadbolt 2)
  • 密码恢复支持

其中有用于Java的示例应用程序。您可以将其合并到您的应用程序中。



 类似资料:
  • 框架中session/cookie的使用 session session的作用主要在保存会话信息,在访问者浏览网站的期间,对访问者相关的信息进行记录,当浏览器关闭后,会话结束,session数据也就消失了。 PHP框架中session是一个数组,可以通过$_SESSION['key'] = $value的方式对session赋值。如: $_SESSION['myname'] = 'Helllo';

  • 本文向大家介绍Django 使用 cookie 实现简单的用户管理功能,包括了Django 使用 cookie 实现简单的用户管理功能的使用技巧和注意事项,需要的朋友参考一下 Cookie: 1.保存在用户浏览器 2.可以主动清除 3.可以被伪造 4.跨域名 Cookie 不共享 创建一个项目:user_manager 和应用: app01 创建数据库,添加 models.py 在 templat

  • 这是一组问题,而不是一个非常具体的问题。在过去的几周/几天里,我对如何在“云中”正确地托管JAVA PLAY应用程序的信息感到困惑,因为很多信息分散在不同的服务上,我想把所有这些小部分集中在一起,因为很多事情都很重要,需要在完整的上下文中看到。然而,我把我的考虑转移到了问题的底部,因为它们主要是我的观点和主观发现,我不想对此负责。如果我做错了什么,请毫不犹豫地指出。 我们的场景:我们在Java P

  • 问题内容: 我有以下(缩短的)struts2操作: 当我执行’cookiesMap.containsKey’时,我得到一个空指针异常- 在我看来setCookiesMap没有被调用。我已经实现了CookiesAware接口,所以我以为 应该 调用它-我在这里错过了什么吗? 谢谢 问题答案: 看起来struts仅支持读取cookie,您必须转到servlet响应以实际 设置 cookie。 最后,我

  • 警告:记住你的密码 假如你忘记了加密账户的密码,那你将无法使用账户 重申:没有密码就无法使用账户,没有“忘记密码”的选项,不要忘记这点 注意:在0.9.36中,密钥文件命名约定已更改。本文档旨在反映Frontier release版本所使用帐户的准确信息。 ethereum CLI通过account子命令提供了账户管理功能 account command [arguments...] 管理帐户功能

  • 本文向大家介绍js使用cookie记录用户名的方法,包括了js使用cookie记录用户名的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js使用cookie记录用户名的方法。分享给大家供大家参考,具体如下: cookie思路:当点击登录按钮时,把cookie存起来,再次访问的时候就读取cookie,即把txt的value设置之前存起来cookie的值就行。 希望本文所述对大家Java