SpringSecurity获取主体的三种方式
三种获取登陆信息方式
@RequestMapping("/user/info")
@ResponseBody
public Object userInfo(Authentication authentication) {
return authentication.getPrincipal();
}
@RequestMapping("/user/info2")
@ResponseBody
public Object userInfo2(@AuthenticationPrincipal UserDetails userDetails) {
return userDetails;
}
@RequestMapping("/user/info3")
@ResponseBody
public Object userInfo3() {
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (principal != null && principal instanceof UserDetails) {
UserDetails userDetails = (UserDetails) principal;
return userDetails;
}
return principal;
}
结果: