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

结果:

SpringSecurity获取主体的三种方式SpringSecurity获取主体的三种方式SpringSecurity获取主体的三种方式
上一篇:HZERO微服务平台06: token生成、校验、获取信息、传递


下一篇:「首席工程师」首席(Principal )工程师修炼之道