springboot 获取用户信息
时间: 2023-10-30 19:06:07 浏览: 49
在Spring Boot中获取用户信息的方法有很多种,下面是其中的一种方法:
首先,你可以通过自定义HandlerMethodArgumentResolver来将request中的User传给@CurrentUser注解的参数。你可以创建一个类,实现HandlerMethodArgumentResolver接口,并重写supportsParameter和resolveArgument方法。在resolveArgument方法中,你可以从request中获取User对象,并将其赋值给@CurrentUser注解的参数。
另外,你还可以在前端调用后端Controller方法时,获取当前登录用户的信息。在Controller方法中,你可以使用@AuthenticationPrincipal注解来获取当前认证的用户对象。这个注解可以直接在方法参数中使用,它会自动将当前用户对象注入到方法参数中。
除了以上两种方法,还可以使用SecurityContextHolder来获取当前认证的用户对象。在Spring Security中,SecurityContextHolder是一个用来保存当前认证状态的容器。你可以通过SecurityContextHolder.getContext().getAuthentication()来获取当前认证的用户对象。
总结起来,获取用户信息的方法有以下几种:
1. 自定义HandlerMethodArgumentResolver来传递User对象给@CurrentUser注解的参数。
2. 使用@AuthenticationPrincipal注解在Controller方法中获取当前认证的用户对象。
3. 使用SecurityContextHolder来获取当前认证的用户对象。
希望以上信息对你有所帮助。