mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
处理token过期导致数据源标识异常
This commit is contained in:
+12
-2
@@ -2,24 +2,31 @@ package com.cf.imes.framework.web.core.filter;
|
|||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
||||||
|
import com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||||
import com.cf.imes.framework.common.util.servlet.ServletUtils;
|
import com.cf.imes.framework.common.util.servlet.ServletUtils;
|
||||||
import com.cf.imes.framework.web.config.WebProperties;
|
import com.cf.imes.framework.web.config.WebProperties;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.filter.OncePerRequestFilter;
|
import org.springframework.web.filter.OncePerRequestFilter;
|
||||||
import javax.servlet.FilterChain;
|
import javax.servlet.FilterChain;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.DATA_SOURCE_CODE_NOT_FOUND;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author there
|
* @author there
|
||||||
* 多数据源过滤器
|
* 多数据源过滤器
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
public class DataSourceFilter extends OncePerRequestFilter {
|
public class DataSourceFilter extends OncePerRequestFilter {
|
||||||
//数据源编码
|
//数据源编码
|
||||||
private static final String DATA_SOURCE_CODE = "data-code";
|
private static final String DATA_SOURCE_CODE = "data-code";
|
||||||
|
/**
|
||||||
|
* HEADER 认证头 value 的前缀
|
||||||
|
*/
|
||||||
|
public static final String AUTHORIZATION_BEARER = "Bearer";
|
||||||
|
|
||||||
|
|
||||||
private WebProperties webProperties;
|
private WebProperties webProperties;
|
||||||
|
|
||||||
@@ -38,11 +45,14 @@ public class DataSourceFilter extends OncePerRequestFilter {
|
|||||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
||||||
String dataCode = request.getHeader(DATA_SOURCE_CODE);
|
String dataCode = request.getHeader(DATA_SOURCE_CODE);
|
||||||
if(StrUtil.isEmpty(dataCode)) {
|
if(StrUtil.isEmpty(dataCode)) {
|
||||||
ServletUtils.writeJSON(response, CommonResult.error(DATA_SOURCE_CODE_NOT_FOUND));
|
ServletUtils.writeJSON(response, CommonResult.error(GlobalErrorCodeConstants.UNAUTHORIZED.getCode(), "访问令牌已过期"));
|
||||||
|
log.info("Let the user log in because there is no data-code! requestURI==>{}", request.getRequestURI());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
DynamicDataSourceContextHolder.push(dataCode);
|
DynamicDataSourceContextHolder.push(dataCode);
|
||||||
filterChain.doFilter(request, response);
|
filterChain.doFilter(request, response);
|
||||||
DynamicDataSourceContextHolder.clear();
|
DynamicDataSourceContextHolder.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user