检索活动用户详细信息
在控制器方法中访问当前经过身份验证的用户时,获取 UserDetails 实现传统上需要访问上下文并进行强制转换User 对象的主体。
WebArgumentResolver 解决方案
为了更优雅的方法,请考虑实现一个 WebArgumentResolver,它负责解析使用自定义注释进行注释的 User 对象,例如@ActiveUser。该解析器可以根据注释的存在和方法参数的类型有条件地返回用户。
Spring 3.1 解决方案:HandlerMethodArgumentResolver
如果使用 Spring 3.1 或之后,首选 HandlerMethodArgumentResolver。它支持检查@ActiveUser注解,如果满足条件则返回用户。
Spring Security 3.2解决方案:@AuthenticationPrincipal
Spring Security 3.2引入了@AuthenticationPrincipal注解,它允许将用户对象直接注入到控制器方法中,从而简化了流程。要使用此注释,请在 Spring 配置中注册 AuthenticationPrincipalArgumentResolver。
对于旧版本的 Spring Security:
如果使用早期版本的 Spring Security 或更喜欢自定义方法,考虑实现上述 WebArgumentResolver 解决方案。
以上是如何在Spring应用程序中检索当前用户?的详细内容。更多信息请关注PHP中文网其他相关文章!