java - Spring安全用户信息

标签 java spring spring-mvc spring-security

我有一个关于 Spring Security 的快速问题,并获取当前登录的用户的进一步信息(实例变量)。默认情况下,无需编写自己的 UserDetailsS​​ervice 有没有办法获取我的 User bean 中定义的任何其他实例变量?您可能知道,通过将以下代码放入我的 Controller 之一,我可以访问以下字段,例如:用户名、密码、启用、权限等。

UserDetails userDetails = 
               (UserDetails) ((Authentication)principal).getPrincipal();

我想获取其他信息,例如我在用户对象中定义的以下实例变量(ID、NAME、EMAIL、ETC):

 // Instance Variables
 private int id;
 private String name;
 private String email;
 private String username; // I can already obtain this
 private String password; // I can already obtain this

您能否提供一些进一步的帮助,以便我获得更多信息?

最佳答案

正如您所知,您可以使用以下代码获取 UserDetails 对象。

UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();

使用UserDetails对象,您可以获得用户名、密码和权限。现在您需要该用户的 ID 和电子邮件。在这种情况下,一旦您的用户通过身份验证,您就可以进行数据库查询,该查询将按用户名返回您的用户对象。

关于java - Spring安全用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25635434/

相关文章:

java - Maven JAXB2 XJC 插件 : M2E plugin execution not covered

java - 通过反射(reflection)思考工厂设计模式

mysql - 从每组中选择前 N 行,第一个最大行,相差一列(Spring、Hibernate、JPQL)

java - Spring AOP : Getting return types in after-returning method

java - Spring MVC 中带有 YearMonth 值的 @RequestParam 注释

java - 扫描仪 nextLine() 似乎没有改变字符串

java - 警报类型无关闭 javafx

Spring MVC 重定向。模型和表格清理

java - 在 JBoss 5 上更改 war 文件中的 HTML、JS 和 CSS 等静态内容,无需重新部署

java - Spring Validator - 使用 <form :errors 显示错误