簡體   English   中英

在Play 2框架(Java)中,如何在身份驗證后將User對象添加到會話中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM