在我的项目中,我使用 Spring Security。为了获取当前用户名,我正在访问 SpringContextHolder
UserDetails principal = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
username = principal.getUsername()
使用org.springframework.security.core.userdetails.UserDetails
对象我只能检索有限的信息,如用户名、密码、角色等。如果我想检索用户ID怎么办?我是否需要每次都调用数据库来获取与用户名对应的更多用户详细信息?我不能为 session 对象设置属性吗?在大多数帖子中,解决方案是通过使用 ModelAndView 对象提出的。但就我而言, View 层不需要 SessionAttributes,但业务逻辑层也需要。
主要是我想以某种方式保留 UserID 和 ClientID 以便随时随地访问。
最佳答案
您可以编写自定义 UserDetails 和 UserDetailsService
关于java - 向 Spring MVC session 添加新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22390547/