下面列出了org.springframework.boot.web.servlet.FilterRegistrationBean#setDispatcherTypes ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@SuppressWarnings({ "rawtypes", "unchecked" })
@Bean
public FilterRegistrationBean xssFilterRegistration()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter());
registration.addUrlPatterns(StringUtils.split(urlPatterns, ","));
registration.setName("xssFilter");
registration.setOrder(Integer.MAX_VALUE);
Map<String, String> initParameters = new HashMap<String, String>();
initParameters.put("excludes", excludes);
initParameters.put("enabled", enabled);
registration.setInitParameters(initParameters);
return registration;
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean frb = new FilterRegistrationBean();
frb.setName("sakai.request");
frb.setServletNames(Arrays.asList("sakai.rubrics", "dispatcherServlet"));
frb.setFilter(new RequestFilter());
frb.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.INCLUDE);
return frb;
}
@Bean
public FilterRegistrationBean traceWebFilter(BeanFactory beanFactory,
SleuthWebProperties webProperties) {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(
new LazyTracingFilter(beanFactory));
filterRegistrationBean.setDispatcherTypes(DispatcherType.ASYNC,
DispatcherType.ERROR, DispatcherType.FORWARD, DispatcherType.INCLUDE,
DispatcherType.REQUEST);
filterRegistrationBean.setOrder(webProperties.getFilterOrder());
return filterRegistrationBean;
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean frb = new FilterRegistrationBean();
frb.setName("sakai.request");
frb.setServletNames(Arrays.asList("sakai.rubrics", "dispatcherServlet"));
frb.setFilter(new RequestFilter());
frb.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.INCLUDE);
return frb;
}
@Bean
@ConditionalOnMissingBean(name = FILTER_NAME)
public FilterRegistrationBean flowFilter(final Flow flow) {
final Filter filter = new FlowFilter(flow);
@SuppressWarnings("unchecked") // as of Spring Boot 2.x
final FilterRegistrationBean registration = new FilterRegistrationBean(filter);
registration.setName(FILTER_NAME);
registration.setDispatcherTypes(REQUEST);
// see https://github.com/opentracing-contrib/java-spring-web/blob/master/opentracing-spring-web-starter/src/main/java/io/opentracing/contrib/spring/web/starter/WebTracingProperties.java
registration.setOrder(Ordered.HIGHEST_PRECEDENCE + 1);
return registration;
}
@Bean
public FilterRegistrationBean requestLogChain() {
FilterRegistrationBean registration = new FilterRegistrationBean();
Filter headerFilter = new RequestLogFilter();
registration.setFilter(headerFilter);
registration.setOrder(Integer.MAX_VALUE);
//拦截错误转发
registration.setDispatcherTypes(EnumSet.allOf(DispatcherType.class));
return registration;
}
@Bean
public FilterRegistrationBean tagFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new TagFilter());
registration.addUrlPatterns(StrUtil.split(URL_PATTERNS, ","));
registration.setName("tagFilter");
registration.setOrder(Integer.MAX_VALUE);
Map<String, String> initParameters = CollUtil.newHashMap();
initParameters.put("excludes", EXCLUDES);
registration.setInitParameters(initParameters);
return registration;
}
/**
* Shiro Core FilterRegistrationBean: Shiro DelegatingFilterProxy
*
* @return
*/
@Bean
public FilterRegistrationBean shiroFilterRegistrationBean() {
FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
DelegatingFilterProxy delegatingFilterProxy = new DelegatingFilterProxy("shiroFilter");
delegatingFilterProxy.setTargetFilterLifecycle(true);
filterRegistration.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.INCLUDE,
DispatcherType.ERROR);
filterRegistration.setFilter(delegatingFilterProxy);
List<String> urlPatterns = new ArrayList<String>();
urlPatterns.add("/*");
filterRegistration.setUrlPatterns(urlPatterns);
return filterRegistration;
}
@SuppressWarnings({"rawtypes", "unchecked"})
@Bean
public FilterRegistrationBean xssFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter());
registration.addUrlPatterns(StringUtils.split(urlPatterns, ","));
registration.setName("xssFilter");
registration.setOrder(Integer.MAX_VALUE);
Map<String, String> initParameters = new HashMap<>();
initParameters.put("excludes", excludes);
initParameters.put("enabled", enabled);
registration.setInitParameters(initParameters);
return registration;
}
@Bean
public FilterRegistrationBean parmsFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new ParamsFilter());
registration.addUrlPatterns("/*");
registration.setName("paramsFilter");
registration.setOrder(Integer.MAX_VALUE - 1);
return registration;
}
/**
* Log4j2 过滤器
*
* @return filter
*/
@Bean
public FilterRegistrationBean log4jServletFilter() {
FilterRegistrationBean<Log4jServletFilter> filterRegistrationBean = new FilterRegistrationBean<>(new Log4jServletFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.setDispatcherTypes(REQUEST, FORWARD, INCLUDE, ERROR, ASYNC);
return filterRegistrationBean;
}
@SuppressWarnings({"rawtypes" , "unchecked"})
@Bean
public FilterRegistrationBean xssFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter());
registration.addUrlPatterns(StrUtil.split(urlPatterns, ","));
registration.setName("xssFilter");
registration.setOrder(Integer.MAX_VALUE);
Map<String, String> initParameters = new HashMap<>();
initParameters.put("excludes" , excludes);
initParameters.put("enabled" , enabled);
registration.setInitParameters(initParameters);
return registration;
}
@Bean
public FilterRegistrationBean openEntityManagerInViewFilter() {
FilterRegistrationBean<OpenEntityManagerInViewFilter> filterRegistrationBean
= new FilterRegistrationBean<>(new OpenEntityManagerInViewFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.setName("openEntityManagerInViewFilter");
filterRegistrationBean.setOrder(-200); // 必须在安全过滤器(-100)之前执行
filterRegistrationBean.setDispatcherTypes(EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD));
return filterRegistrationBean;
}
@Bean
@SuppressWarnings({"rawtypes", "unchecked"}) // as of Spring Boot 2.x
public FilterRegistrationBean logbookFilter(final Logbook logbook) {
final FilterRegistrationBean registration =
new FilterRegistrationBean(new LogbookFilter(logbook));
registration.setDispatcherTypes(REQUEST, ASYNC);
return registration;
}
/**
* 防XSS注入
*/
@Bean
public FilterRegistrationBean<XssFilter> xssFilterRegistration() {
FilterRegistrationBean<XssFilter> registration = new FilterRegistrationBean<>();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter(xssProperties, xssUrlProperties));
registration.addUrlPatterns("/*");
registration.setName("xssFilter");
registration.setOrder(Ordered.LOWEST_PRECEDENCE);
return registration;
}
@Bean
public FilterRegistrationBean delegatingFilterProxy(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
DelegatingFilterProxy proxy = new DelegatingFilterProxy();
proxy.setTargetFilterLifecycle(true);
proxy.setTargetBeanName("shiroFilter");
filterRegistrationBean.setFilter(proxy);
filterRegistrationBean.setDispatcherTypes(DispatcherType.ERROR,DispatcherType.REQUEST,DispatcherType.FORWARD,DispatcherType.INCLUDE);
return filterRegistrationBean;
}
@Bean
public FilterRegistrationBean xssFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter());
registration.addUrlPatterns("/*");
registration.setName("xssFilter");
registration.setOrder(Integer.MAX_VALUE);
return registration;
}
@Bean
public FilterRegistrationBean xssFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter());
registration.addUrlPatterns("/*");
registration.setName("xssFilter");
registration.setOrder(Integer.MAX_VALUE);
return registration;
}
@Bean
public FilterRegistrationBean createOpContextFilter(@Autowired OperationContext operationContext) {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new OpContextFilter(operationContext));
// registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
registration.setDispatcherTypes(EnumSet.allOf(DispatcherType.class));
return registration;
}
/**
* Shiro Core FilterRegistrationBean: Shiro DelegatingFilterProxy
*
* @return
*/
@Bean
public FilterRegistrationBean shiroFilterRegistrationBean() {
FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
DelegatingFilterProxy delegatingFilterProxy = new DelegatingFilterProxy("shiroFilter");
delegatingFilterProxy.setTargetFilterLifecycle(true);
filterRegistration.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.INCLUDE,
DispatcherType.ERROR);
filterRegistration.setFilter(delegatingFilterProxy);
List<String> urlPatterns = new ArrayList<String>();
urlPatterns.add("/*");
filterRegistration.setUrlPatterns(urlPatterns);
return filterRegistration;
}