Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf Spring安全当前用户会话Bean_Jsf_Spring Security - Fatal编程技术网

Jsf Spring安全当前用户会话Bean

Jsf Spring安全当前用户会话Bean,jsf,spring-security,Jsf,Spring Security,在处理Spring安全性时,您通常是将当前用户存储到会话变量中,还是每次希望访问某些用户信息时都点击数据库 目前,我做了以下工作,但似乎有点浪费: public class CurrentUserService { private UserDAO userDAO; public CurrentUserService(UserDAO userDAO) { super(); this.userDAO = userDAO; } p

在处理Spring安全性时,您通常是将当前用户存储到会话变量中,还是每次希望访问某些用户信息时都点击数据库

目前,我做了以下工作,但似乎有点浪费:

public class CurrentUserService {
    private UserDAO userDAO;



    public CurrentUserService(UserDAO userDAO) {
        super();
        this.userDAO = userDAO;
    }

    public User getUser(){
        String username=SecurityContextHolder.getContext().getAuthentication().getName();
        return userDAO.findUser(username);
    }
}

请记住,要存储在会话中的用户对象不必与从数据库中检索到的相同。通常可以接受的方法是,在会话中存储用户经常需要的详细信息,并仅针对访问频率较低的数据访问数据库。那么,在会话中存储哪些用户信息以及不存储哪些信息完全取决于应用程序。

Spring Security将在会话中以默认配置自动存储经过身份验证的用户对象。安全筛选器链首先要做的事情之一是检查会话中是否存在有效的身份验证令牌,如果存在,则会使用该令牌填充
SecurityContext
,并跳过任何新的身份验证筛选器。你所需要做的就是编写你的
userdetails服务
,然后过滤链就可以完成剩下的工作