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;
   }

登录之后直接访问接口,测试结果如下

 

posted @   __破  阅读(124)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示