springsecurity 中 @AuthenticationPrincipal 的简单用法

@GetMapping("getinfo")
@PreAuthorize("isAuthenticated()")
public Result<?> getInfo(@AuthenticationPrincipal UserDetails user){
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
userQueryWrapper.eq("username",user.getUsername());
QueryWrapper<Mymessage> mymessageQueryWrapper = new QueryWrapper<>();
mymessageQueryWrapper.eq("uid",userService.getOne(userQueryWrapper).getUid());
return Result.getOk(mymessageService.list(mymessageQueryWrapper));
}
其中
@AuthenticationPrincipal UserDetails user
返回的是userdetails
可以使用getUsername()方法获取用户名,使用getPassword()获取密码,常用就获取用户名
别的SecurityContextHolder.getContext().getAuthentication();也可以获取,
总之,在controller中获取用户认证信息还是很简单的,方法很多
posted @ 2021-05-16 17:33  今夜明珠色  阅读(6871)  评论(0编辑  收藏  举报