如何在Spring MVC中使用户信息对所有控制器及其方法可用?
- 论坛
- 如何在Spring MVC中使用户信息对所有控制器及其方法可用?
10 浏览
匿名的
0 Comments
问题的出现原因是需要在Spring MVC中的所有控制器和它们的方法中访问用户信息,解决方法是使用Spring Security来实现。当用户登录后,可以通过以下方式访问用户主体信息:
SecurityContext context = SecurityContextHolder.getContext(); Authentication auth = context.getAuthentication(); User user = (User) auth.getPrincipal();
这段代码的输出是什么?只有登录ID和密码还是所有细节?
用户主体信息是任意的。默认情况下,auth.getPrincipal()
只返回一个字符串(具体我记不清了),但是你可以实现并注册自己的自定义用户服务来返回任何类型的User
对象。它可以包含用户名、名字、电子邮件等任何你想要的信息。
这里有一个我在DZone上写的RefCard:refcardz.dzone.com/refcardz/expression-based-authorization