Java Play!2-使用Cookie的用户管理
问题内容:
我正在尝试通过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是否为我提供了完整的解决方案?还是至少有一些文档?
问题答案:
还有一个全栈authentication
和authorization
-
发挥身份验证通过Joscha第k个。(可在GitHub上获得)
它合并了Java的 现成 示例,该示例使用了securesocial
+完全Deadbolt
2
(由Steve Chaloner提供)支持的概念。它具有:
- 内置的可能性
register
和log in
用户与电子邮件,谷歌,Facebook,Foursquare的,微博OpenID和自定义提供。 - 多语言支持(当前:英语,德语,波兰语)
- 可自定义的模板(也用于参考电子邮件)
- 支持
roles
和permissions
(通过Deadbolt 2) - 密码恢复支持
其中有用于Java的示例应用程序。您可以将其合并到您的应用程序中。