package com.sandu.ximon.admin.security.wxOpenId;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.sandu.common.enums.ResponseStatusEnums;
|
import com.sandu.common.execption.BusinessException;
|
import com.sandu.common.util.AesUtil;
|
import org.springframework.core.MethodParameter;
|
import org.springframework.web.bind.support.WebDataBinderFactory;
|
import org.springframework.web.context.request.NativeWebRequest;
|
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
import org.springframework.web.method.support.ModelAndViewContainer;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @author LiuHaoNan
|
* @date 2022/6/30
|
*/
|
public class WxOpenIdHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
|
|
static final String OPENID = "openId";
|
|
public static final String SPLIT = ";";
|
|
@Override
|
public boolean supportsParameter(MethodParameter parameter) {
|
return parameter.getParameterType().isAssignableFrom(OpenId.class) ;
|
}
|
|
@Override
|
public Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer
|
, NativeWebRequest nativeWebRequest, WebDataBinderFactory webDataBinderFactory) throws Exception {
|
String openId = nativeWebRequest.getHeader(OPENID);
|
if (StrUtil.isBlank(openId)) {
|
throw new BusinessException("openId不能为空");
|
}
|
openId = AesUtil.decrypt(openId);
|
return openId;
|
}
|
}
|