java.lang.Object
org.miaixz.bus.starter.auth.AuthMethodResolver
- All Implemented Interfaces:
org.springframework.web.method.support.HandlerMethodArgumentResolver
public class AuthMethodResolver
extends Object
implements org.springframework.web.method.support.HandlerMethodArgumentResolver
授权方法参数解析器,用于将带有
Authenticate注解的方法参数自动注入当前登录用户信息。
该类实现了Spring MVC的HandlerMethodArgumentResolver接口,用于在控制器方法调用前,
自动将当前登录用户信息注入到带有Authenticate注解的Authorize类型参数中。
使用示例:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/info")
public UserInfo getUserInfo(@Authenticate Authorize user) {
// 直接使用user参数,无需手动获取用户信息
return userService.getUserInfo(user.getId());
}
}
在上述示例中,当调用/user/info接口时,AuthMethodResolver会自动将当前登录用户信息 注入到user参数中,开发者无需手动从请求中获取用户信息。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionresolveArgument(org.springframework.core.MethodParameter parameter, org.springframework.web.method.support.ModelAndViewContainer modelAndViewContainer, org.springframework.web.context.request.NativeWebRequest nativeWebRequest, org.springframework.web.bind.support.WebDataBinderFactory webDataBinderFactory) 解析方法参数,将当前登录用户信息注入到参数中。booleansupportsParameter(org.springframework.core.MethodParameter parameter) 判断方法参数是否支持解析。
-
Constructor Details
-
AuthMethodResolver
public AuthMethodResolver()
-
-
Method Details
-
supportsParameter
public boolean supportsParameter(org.springframework.core.MethodParameter parameter) 判断方法参数是否支持解析。当且仅当满足以下条件时,该方法返回true:
- 参数类型是
Authorize类或其子类 - 参数带有
Authenticate注解
- Specified by:
supportsParameterin interfaceorg.springframework.web.method.support.HandlerMethodArgumentResolver- Parameters:
parameter- 要检查的方法参数- Returns:
- 如果支持解析则返回true,否则返回false
- 参数类型是
-
resolveArgument
public Object resolveArgument(org.springframework.core.MethodParameter parameter, org.springframework.web.method.support.ModelAndViewContainer modelAndViewContainer, org.springframework.web.context.request.NativeWebRequest nativeWebRequest, org.springframework.web.bind.support.WebDataBinderFactory webDataBinderFactory) 解析方法参数,将当前登录用户信息注入到参数中。该方法从Spring上下文中获取当前登录用户信息,并将其作为方法参数的值返回。
- Specified by:
resolveArgumentin interfaceorg.springframework.web.method.support.HandlerMethodArgumentResolver- Parameters:
parameter- 要解析的方法参数modelAndViewContainer- ModelAndView容器,可用于设置模型和视图nativeWebRequest- 原生Web请求对象webDataBinderFactory- Web数据绑定工厂,可用于创建WebDataBinder实例- Returns:
- 当前登录用户信息对象
-