解決Springboot @WebFilter攔截器未生效問題
問題描述
@WebFilter(filterName = “ssoFilter”,urlPatterns = “/*”)
未生效攔截器
解決方法
在springboot啟動(dòng)類上添加
@ServletComponentScan(basePackages = “full.package.path”)
路徑替換為@WebFilter所在包
補(bǔ)充知識(shí):在spring boot中使用@WebFilter配置filter(包括排除URL)
我就廢話不多說了,大家還是直接看代碼吧~
@WebFilter(urlPatterns = '/*')@Order(value = 1)public class TestFilter implements Filter { private static final Set<String> ALLOWED_PATHS = Collections.unmodifiableSet(new HashSet<>( Arrays.asList('/main/excludefilter', '/login', '/logout', '/register'))); @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println('init-----------filter'); } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; String path = request.getRequestURI().substring(request.getContextPath().length()).replaceAll('[/]+$', ''); boolean allowedPath = ALLOWED_PATHS.contains(path); if (allowedPath) { System.out.println('這里是不需要處理的url進(jìn)入的方法'); chain.doFilter(req, res); } else { System.out.println('這里是需要處理的url進(jìn)入的方法'); } } @Override public void destroy() { System.out.println('destroy----------filter'); }}
@Order中的value越小,優(yōu)先級(jí)越高。
以上這篇解決Springboot @WebFilter攔截器未生效問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python文檔怎么查看?2. python - pycharm 自動(dòng)刪除行尾空格3. python - Pycharm的Debug用不了4. javascript - 有適合開發(fā)手機(jī)端Html5網(wǎng)頁(yè)小游戲的前端框架嗎?5. python - pandas按照列A和列B分組,將列C求平均數(shù),怎樣才能生成一個(gè)列A,B,C的dataframe6. html - eclipse 標(biāo)簽錯(cuò)誤7. python 利用subprocess庫(kù)調(diào)用mplayer時(shí)發(fā)生錯(cuò)誤8. 請(qǐng)問PHPstudy中的數(shù)據(jù)庫(kù)如何創(chuàng)建索引9. datetime - Python如何獲取當(dāng)前時(shí)間10. 安全性測(cè)試 - nodejs中如何防m(xù)ySQL注入
