如何在Spring MVC中使用户信息对所有控制器及其方法可用?

10 浏览
0 Comments

如何在Spring MVC中使用户信息对所有控制器及其方法可用?

我是spring的新手,正在尝试开发一个与数据库交互的基本应用程序。我想知道如何在用户登录时使用户信息对所有控制器及其方法都可用。我正在使用spring mvc。

0
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

0