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 OriginalCallerResolver implements HandlerMethodArgumentResolver {
|
|
@Override
|
public boolean supportsParameter(MethodParameter methodParameter) {
|
return methodParameter.getParameterType().isAssignableFrom(OriginalCaller.class);
|
}
|
|
@Override
|
public Object resolveArgument(MethodParameter parameter,
|
ModelAndViewContainer mavContainer,
|
NativeWebRequest webRequest,
|
WebDataBinderFactory binderFactory) {
|
return webRequest.getAttribute(AuthInterceptor.CALLER_PAYLOAD_KEY, RequestAttributes.SCOPE_REQUEST);
|
}
|
}
|