5.获取当前登录用户
获取当前登录用户
传统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;
}
登录之后直接访问接口,测试结果如下

浙公网安备 33010602011771号