springboot过滤器配置
/**
* 基本信息过滤器
*
* @author jWX562483
*/
@EnableConfigurationProperties(DebugProperties.class)
@WebFilter(filterName = "InstanceFilter", urlPatterns = "/*") //配置过滤器名称和拦截的路径
@Component
public class InstanceFilter extends OncePerRequestFilter { //过滤器需要继承接口OncePerRequestFilter
private static final Logger logger = LogManager.getLogger(InstanceFilter.class);
@Autowired
private DebugProperties debugProperties;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) //继承这个方法 //请求发出后,会匹配过滤器拦截路径,如果匹配成功,则调用这个方法
throws ServletException, IOException {
if (debugProperties.isDebug()) {
HttpInfoUtils.setLanguage(debugProperties.getLanguage());
HttpInfoUtils.setProjectCode(debugProperties.getProjectCode());
HttpInfoUtils.setUser(JSON.parseObject(debugProperties.getUserInfo(), User.class));
} else {
try {
HttpInfoUtils.parseAndSetLanguage();
} catch (Exception e) {
logger.info(e.getMessage());
}
try {
HttpInfoUtils.parseAndSetProjectCode();
} catch (Exception e) {
logger.info(e.getMessage());
}
try {
HttpInfoUtils.parseAndSetUserInfo();
} catch (Exception e) {
logger.info(e.getMessage());
}
}
filterChain.doFilter(request, response); //放行
}
}