获取当前登录用户
传统web系统中,我们将登陆成功的用户放入session中,在需要的时候,可以从session中获取用户,那么spring Security中我们可以从以下两个类获得当前已经登录的用户
-
SecurityContextHolder
保留系统当前的安全上下文 SecurityContext,其中就包括当前使用系统的用户信息
-
SecurityContext
安全上下文,获取当前经过身份验证的主体或身份验证请求令牌
代码实现如下(security获取当前登录用户的三种方式):
/** * 获取当前登录用户 * @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; }
登录之后直接访问接口,测试结果如下
标签:return,登录,用户,获取,userDetails,UserDetails From: https://www.cnblogs.com/popopopopo/p/17219080.html