package com.dy.pipIrrWebFile.config; import com.dy.common.webFilter.DevOfDataSourceNameSetFilter; import com.dy.common.webFilter.UserTokenFilter; import jakarta.servlet.Filter; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author ZhuBaoMin * @date 2023/12/5 10:32 * @LastEditTime 2023/12/5 10:32 * @Description */ @Configuration public class WebFilterConfiguration { @Value("${pipIrr.global.dev}") public String isDevStage ;//是否为开发阶段 @Value("${pipIrr.global.dsName}") public String dsName ;//开发阶段的数据源名称 /** * DevOfDataSourceNameSetFilter与UserTokenFilter只能一个被配置上, * 所以他们的order都是1 */ private static final int order_UserTokenFilter = 1 ;//与下面 private static final int order_DevOfDataSourceNameSetFilter = 1 ; @Bean public FilterRegistrationBean RegFilter() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean<>(); if(this.isDevStage != null && !this.isDevStage.trim().equals("") && this.isDevStage.trim().equalsIgnoreCase("true")){ filterRegistrationBean.setFilter(new DevOfDataSourceNameSetFilter()); filterRegistrationBean.addUrlPatterns("/*");//配置过滤规则 filterRegistrationBean.addInitParameter("dataSourceName",dsName);//设置init参数 filterRegistrationBean.setName("DevOfDataSourceNameSetFilter");//设置过滤器名称 filterRegistrationBean.setOrder(order_DevOfDataSourceNameSetFilter);//执行次序 }else{ filterRegistrationBean.setFilter(new UserTokenFilter()); filterRegistrationBean.addUrlPatterns("/*");//配置过滤规则 filterRegistrationBean.setName("UserTokenFilter");//设置过滤器名称 filterRegistrationBean.setOrder(order_UserTokenFilter);//执行次序 } return filterRegistrationBean; } }