Module bus.starter

Class AuthMethodResolver

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
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    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)
    解析方法参数,将当前登录用户信息注入到参数中。
    boolean
    supportsParameter(org.springframework.core.MethodParameter parameter)
    判断方法参数是否支持解析。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AuthMethodResolver

      public AuthMethodResolver()
  • Method Details

    • supportsParameter

      public boolean supportsParameter(org.springframework.core.MethodParameter parameter)
      判断方法参数是否支持解析。

      当且仅当满足以下条件时,该方法返回true:

      • 参数类型是Authorize类或其子类
      • 参数带有Authenticate注解
      Specified by:
      supportsParameter in interface org.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:
      resolveArgument in interface org.springframework.web.method.support.HandlerMethodArgumentResolver
      Parameters:
      parameter - 要解析的方法参数
      modelAndViewContainer - ModelAndView容器,可用于设置模型和视图
      nativeWebRequest - 原生Web请求对象
      webDataBinderFactory - Web数据绑定工厂,可用于创建WebDataBinder实例
      Returns:
      当前登录用户信息对象