鍍金池/ 問答/Java  網(wǎng)絡(luò)安全  HTML/ Spring加了多個(gè)filer,導(dǎo)致跨域filer不起作用,怎么回事?

Spring加了多個(gè)filer,導(dǎo)致跨域filer不起作用,怎么回事?

各位前輩,我做了2個(gè)filter,一個(gè)是跨域一個(gè)是token驗(yàn)證。
然后在springboot下注冊2個(gè)過濾器,代碼是:

@Bean
public FilterRegistrationBean getDemoFilter() {
    CrossFilter crossFilter = new CrossFilter();
    TokenFilter tokenFilter = new TokenFilter();
    FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    registrationBean.setFilter(crossFilter);
    registrationBean.setFilter(tokenFilter);
    List<String> urlPatterns = new ArrayList<String>();
    urlPatterns.add("/*");
    registrationBean.setUrlPatterns(urlPatterns);
    registrationBean.setOrder(1);
    return registrationBean;
}

這2個(gè)過濾器分開來使用都是可用的,但是這樣直接注冊就,跨域就無法使用。這是為什么呢?是不是order的問題?如果是,請問如何設(shè)置順序?
謝謝各位前輩。

回答
編輯回答
敢試

那個(gè)方法名字是 setFileter 不是 addFileter,所以你使用 tokenFilter 覆蓋了 crossFilter
如果是一個(gè)全局的 Fileter 其實(shí)可以這樣子

@Bean
public class SomeFileter extends OncePerRequestFilter{
    //...
}
2018年7月16日 04:07