|  |  |  | 
|---|
|  |  |  | package com.dy.pipIrrDemo.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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Configuration | 
|---|
|  |  |  | @SuppressWarnings("unchecked")//不加此注解,编译时警告:“使用了未经检查或不安全的操作。” | 
|---|
|  |  |  | public class WebFilterConfiguration { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static final int orger_demoSetDataSourceFilter = 1 ; | 
|---|
|  |  |  | @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 DemoSetDataSourceFilter getDemoSetDataSourceFilter(){ | 
|---|
|  |  |  | return new DemoSetDataSourceFilter() ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Bean | 
|---|
|  |  |  | public FilterRegistrationBean<? extends Filter> reqDemoSetDataSourceFilter(DemoSetDataSourceFilter filter) { | 
|---|
|  |  |  | FilterRegistrationBean<DemoSetDataSourceFilter> filterRegistrationBean = new FilterRegistrationBean(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | filterRegistrationBean.setFilter(filter); | 
|---|
|  |  |  | filterRegistrationBean.addUrlPatterns("/*");//配置过滤规则 | 
|---|
|  |  |  | filterRegistrationBean.addInitParameter("name","I am DemoSetDataSourceFilter");//设置init参数 | 
|---|
|  |  |  | filterRegistrationBean.setName("demoSetDataSourceFilter");//设置过滤器名称 | 
|---|
|  |  |  | filterRegistrationBean.setOrder(orger_demoSetDataSourceFilter);//执行次序 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public FilterRegistrationBean<? extends Filter> RegFilter() { | 
|---|
|  |  |  | FilterRegistrationBean<Filter> 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|