解決Springboot @WebFilter攔截器未生效問題
問題描述
@WebFilter(filterName = “ssoFilter”,urlPatterns = “/*”)
未生效攔截器
解決方法
在springboot啟動類上添加
@ServletComponentScan(basePackages = “full.package.path”)
路徑替換為@WebFilter所在包
補充知識:在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進入的方法'); chain.doFilter(req, res); } else { System.out.println('這里是需要處理的url進入的方法'); } } @Override public void destroy() { System.out.println('destroy----------filter'); }}
@Order中的value越小,優先級越高。
以上這篇解決Springboot @WebFilter攔截器未生效問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
1. 在應用配置文件 app.php 中找不到’route_check_cache’配置項2. html按鍵開關如何提交我想需要的值到數據庫3. mysql取模分表與分表4. HTML 5輸入框只能輸入漢字、字母、數字、標點符號?正則如何寫?5. gvim - 誰有vim里CSS的Indent文件, 能縮進@media里面的6. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下7. 跟著課件一模一樣的操作使用tp6,出現了錯誤8. PHP類屬性聲明?9. objective-c - ios 怎么實現微信聯系列表 最好是swift10. javascript - 請教如何獲取百度貼吧新增的兩個加密參數
