1. 程式人生 > >Spring Boot ,Spring Security的Filter在Tomcat正常,部署在Weblogic 12c Filter順序出錯,導致攔截許可權問題

Spring Boot ,Spring Security的Filter在Tomcat正常,部署在Weblogic 12c Filter順序出錯,導致攔截許可權問題

於是將 @EnableWebSecurity(debug=true) debug開啟,發現列印的Log 的 Security filter chain:  [] 確實沒有MyFilterSecurityInterceptor,可是為啥還是進入到此MyFilterSecurityInterceptor,當時也沒多想,以為weblogic的bug,上百度,google 查看了下,說需要重寫SpringBootServletInitializer的onStartup(ServletContext servletContext) ,查看了 SpringBootServletInitializer的方法,也不知道從何寫起,於是在原始碼中打斷點追蹤程式碼,發現只要是 實現了 Filter的類 ,並且 @Component 註解的,都進入 org.springframework.boot.web.servlet.AbstractFilterRegistrationBean.onStartup(ServletContext) 方法,被 FilterRegistration.Dynamic added = servletContext.addFilter(name, filter); addFilter新增到 servletContext中,難道系統對Filter的Bean預設註冊麼,經過搜尋,果然是預設Filter自動註冊,
spring boot官方文件說明
預設情況下對 @WebServlet@WebFilter, and @WebListener 以及 @Bean,@Component 這些只要是implements Filter的類,自動新增,預設的過濾路徑為 /* 。