[英]In Play 2 framework (Java), how to add User object to session after authentication
我查看了“ zentasks”示例代碼,以了解一些基本的用戶登錄和安全性知識。 Appication控制器具有一個authenticate方法 ,在該方法期間,將調用User.authenticate方法 。 以下是這些鏈接中的幾個代碼段:
public static Result authenticate() {
Form<Login> loginForm = form(Login.class).bindFromRequest();
if(loginForm.hasErrors()) {
return badRequest(login.render(loginForm));
} else {
session("email", loginForm.get().email);
return redirect(
routes.Projects.index()
);
}
}
...
public static class Login {
public String email;
public String password;
public String validate() {
if(User.authenticate(email, password) == null) {
return "Invalid user or password";
}
return null;
}
}
如您所見,如果它進行身份驗證(即找到一個User對象),則authenticate
方法將“ email”添加到會話中。 我想改為添加完整的用戶對象,但是在執行會話的控制器操作中,沒有User
對象。 我不想重新查詢數據庫,我想使用在Login.validate
找到的同一User
對象。 有什么好方法嗎?
您是否有理由不能簡單地在登錄類中添加字段?
public static class Login {
public String email;
public String password;
public User user;
public String validate() {
user = User.authenticate(email, password);
if(user == null) {
return "Invalid user or password";
}
return null;
}
}
並非一定會對您有幫助,但查看API似乎您無法將對象(僅字符串)添加到會話中。
http://www.playframework.org/documentation/api/2.0.4/java/play/mvc/Http.Session.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.