package org.jeecg.config.sign.interceptor;
|
|
import org.apache.commons.lang3.StringUtils;
|
import org.jeecg.common.util.PathMatcherUtil;
|
import org.jeecg.config.JeecgBaseConfig;
|
import org.jeecg.config.filter.RequestBodyReserveFilter;
|
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
import javax.annotation.Resource;
|
|
/**
|
* 签名 拦截器配置
|
* @author: jeecg-boot
|
*/
|
@Configuration
|
public class SignAuthConfiguration implements WebMvcConfigurer {
|
@Resource
|
JeecgBaseConfig jeecgBaseConfig;
|
|
@Bean
|
public SignAuthInterceptor signAuthInterceptor() {
|
return new SignAuthInterceptor();
|
}
|
|
@Override
|
public void addInterceptors(InterceptorRegistry registry) {
|
//------------------------------------------------------------
|
//查询需要进行签名拦截的接口 signUrls
|
String signUrls = jeecgBaseConfig.getSignUrls();
|
String[] signUrlsArray = null;
|
if (StringUtils.isNotBlank(signUrls)) {
|
signUrlsArray = signUrls.split(",");
|
} else {
|
signUrlsArray = PathMatcherUtil.SIGN_URL_LIST;
|
}
|
//------------------------------------------------------------
|
registry.addInterceptor(signAuthInterceptor()).addPathPatterns(signUrlsArray);
|
}
|
|
//update-begin-author:taoyan date:20220427 for: issues/I53J5E post请求X_SIGN签名拦截校验后报错, request body 为空
|
@Bean
|
public RequestBodyReserveFilter requestBodyReserveFilter(){
|
return new RequestBodyReserveFilter();
|
}
|
|
@Bean
|
public FilterRegistrationBean reqBodyFilterRegistrationBean(){
|
FilterRegistrationBean registration = new FilterRegistrationBean();
|
registration.setFilter(requestBodyReserveFilter());
|
registration.setName("requestBodyReserveFilter");
|
//------------------------------------------------------------
|
//查询需要进行签名拦截的接口 signUrls
|
String signUrls = jeecgBaseConfig.getSignUrls();
|
String[] signUrlsArray = null;
|
if (StringUtils.isNotBlank(signUrls)) {
|
signUrlsArray = signUrls.split(",");
|
} else {
|
signUrlsArray = PathMatcherUtil.SIGN_URL_LIST;
|
}
|
//------------------------------------------------------------
|
// 建议此处只添加post请求地址而不是所有的都需要走过滤器
|
registration.addUrlPatterns(signUrlsArray);
|
return registration;
|
}
|
//update-end-author:taoyan date:20220427 for: issues/I53J5E post请求X_SIGN签名拦截校验后报错, request body 为空
|
|
}
|