package com.estate.expert.common.auth;
|
|
import org.springframework.core.MethodParameter;
|
import org.springframework.web.bind.support.WebDataBinderFactory;
|
import org.springframework.web.context.request.NativeWebRequest;
|
import org.springframework.web.context.request.RequestAttributes;
|
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
import org.springframework.web.method.support.ModelAndViewContainer;
|
|
/**
|
* 认证调用者解析器
|
*/
|
public class AuthCallerResolver implements HandlerMethodArgumentResolver {
|
|
/**
|
* 是否支持参数
|
* @param methodParameter 方法参数
|
* @return 是否支持
|
*/
|
@Override
|
public boolean supportsParameter(MethodParameter methodParameter) {
|
return methodParameter.getParameterType().isAssignableFrom(AuthCaller.class);
|
}
|
|
/**
|
* 解析参数
|
* @param parameter 方法参数
|
* @param mavContainer 模型视图容器
|
* @param webRequest 网络请求
|
* @param binderFactory 数据绑定工厂
|
* @return 参数
|
*/
|
@Override
|
public Object resolveArgument(MethodParameter parameter,
|
ModelAndViewContainer mavContainer,
|
NativeWebRequest webRequest,
|
WebDataBinderFactory binderFactory) {
|
return webRequest.getAttribute(AuthInterceptor.AUTH_PAYLOAD_KEY, RequestAttributes.SCOPE_REQUEST);
|
}
|
}
|