在运行时获取Spring UserDetails对象

时间:2019-03-08 16:45:39

标签: spring hibernate spring-boot spring-security

我有一个Spring应用程序,用户必须通过3个字段(用户名,部门ID和密码)登录。我想在运行时检索当前登录用户的部门ID

我尝试过:

SecurityContextHolder.getContext().getAuthentication()

然后尝试将其强制转换为UserDetails对象,但发生错误,提示无法强制转换该对象。

我还尝试扩展UserDetails接口并添加要返回的所需数据,然后实现了新接口,但是我也无法转换对象。

1 个答案:

答案 0 :(得分:-1)

如果使用JWT,则在令牌构建期间添加声明 字符串jwt = Jwts.builder()   .setSubject(用户名)   .claim(“ deptId”,departmentId)

然后从Claims.getBody()获取值