向Spring MVC Session添加新属性

时间:2014-03-13 20:47:32

标签: java spring session spring-mvc spring-security

在我的项目中,我正在使用spring security。要获取当前用户名,我将访问SpringContextHolder

UserDetails principal = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
username = principal.getUsername()

使用org.springframework.security.core.userdetails.UserDetails对象我只能检索有限的信息,如用户名,密码,角色等。如果我想检索用户ID怎么办?我是否需要每次都进行数据库调用以获取与用户名相对应的更多用户详细信息?我不能将属性设置为会话对象吗?在大多数帖子中,使用ModelAndView对象提出了解决方案。但就我而言,我不需要ViewAttributes用于视图层,但也需要业务逻辑层。

主要是我希望以某种方式持久存在UserID和ClientID,以便随时随地访问。

1 个答案:

答案 0 :(得分:1)

您可以编写自定义UserDetails和UserDetailsS​​ervice

Spring Security: custom userdetails

Custom UserDetailsService example for spring 3 security