我的过滤器如下:
@Component
@Order(1)
public class MDCFilter implements Filter {
.....
和 application.properties
security.filter-order=0
在上面的设置中——我的过滤器先出现,然后是安全过滤器。但是在 spring 安全过滤器之后我需要 mdcFilter。
最佳答案
您可以通过像这样定义您的安全配置,将您的过滤器放在特定的 spring-security 过滤器旁边:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private MDCFilter mdcFilter;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterBefore(mdcFilter, UsernamePasswordAuthenticationFilter.class);
}
}
在上面的示例中,您的过滤器将位于 UsernamePasswordAuthenticationFilter 之前。您还可以使用 HttpSecurity 类方法 addFilterAfter(Filter filter, Class<? extends Filter> afterFilter)
和 addFilterAt(Filter filter, Class<? extends Filter> atFilter)
指定您的过滤顺序。
关于spring - 如何在 spring 安全过滤器之后添加自定义过滤器顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40471429/