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

结果:

image-20210508143455451 image-20210508143506926 image-20210508143824512
posted @ 2021-05-08 14:43  天宇轩-王  阅读(144)  评论(0编辑  收藏  举报