@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.debug(true);
}
}
启用spring security调试后,它将注册spring security DebugFilter.java
我有一个自定义过滤器,我想在spring security DebugFilter之前订购。对我而言,最先在调试过滤器之前调用过滤器的方法是什么?
我的自定义过滤器已经在spring安全过滤器链之前订购了,但是在spring security调试过滤器之前没有被调用。
答案 0 :(得分:0)
虽然不清楚如何指定自定义过滤器的顺序,但我假设您正在使用Springboot并使用 FilterRegistrationBean 来设置自定义过滤器并通过调用setOrder来设置顺序。以下答案基于该假设,如果您也以其他方式设置订单,则可能适用。
如果您查看 WebSecurityConfigurerAdapter 的源代码,则应用的顺序为100。
@Order(100)
public abstract class WebSecurityConfigurerAdapter implements
WebSecurityConfigurer<WebSecurity> {
因此,如果要为自定义过滤器设置最高优先级,请使用 FilterRegistrationBean.setOrder 方法添加以下优先级。使用FilterRegistrationBean.HIGHEST_PRECEDENCE设置最高顺序。
filterRegBean.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE);