5.获取当前登录用户
获取当前登录用户
传统web系统中,我们将登陆成功的用户放入session中,在需要的时候,可以从session中获取用户,那么spring Security中我们可以从以下两个类获得当前已经登录的用户
-
SecurityContextHolder
保留系统当前的安全上下文 SecurityContext,其中就包括当前使用系统的用户信息
-
SecurityContext
安全上下文,获取当前经过身份验证的主体或身份验证请求令牌
代码实现如下(security获取当前登录用户的三种方式):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | /** * 获取当前登录用户 * @return */ @GetMapping( "/loginUser1" ) @ResponseBody public UserDetails getCurrnetUser1(Authentication authentication){ UserDetails userDetails = (UserDetails) authentication.getPrincipal(); return userDetails; } /** * 获取当前登录用户 * @return */ @GetMapping( "/loginUser2" ) @ResponseBody public UserDetails getCurrnetUser2(){ UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); return userDetails; } /** * 获取当前登录用户 * @return */ @GetMapping( "/loginUser3" ) @ResponseBody public UserDetails getCurrnetUser3(@AuthenticationPrincipal UserDetails userDetails){ return userDetails; } |
登录之后直接访问接口,测试结果如下
分类:
spring security
标签:
spring security
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY