解決Springboot @WebFilter攔截器未生效問(wèn)題
問(wèn)題描述
@WebFilter(filterName = “ssoFilter”,urlPatterns = “/*”)
未生效攔截器
解決方法
在springboot啟動(dòng)類(lèi)上添加
@ServletComponentScan(basePackages = “full.package.path”)
路徑替換為@WebFilter所在包
補(bǔ)充知識(shí):在spring boot中使用@WebFilter配置filter(包括排除URL)
我就廢話(huà)不多說(shuō)了,大家還是直接看代碼吧~
@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攔截器未生效問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. mysql優(yōu)化 - 關(guān)于mysql分區(qū)2. javascript - 循環(huán)嵌套多個(gè)promise應(yīng)該如何實(shí)現(xiàn)?3. 前端 - IE9 css兼容問(wèn)題4. css - 移動(dòng)端字體設(shè)置問(wèn)題5. html5 - 如何實(shí)現(xiàn)帶陰影的不規(guī)則容器?6. vue.js - vue 打包后 nginx 服務(wù)端API請(qǐng)求跨域問(wèn)題無(wú)法解決。7. javascript - ionic2 input autofocus 電腦成功,iOS手機(jī)鍵盤(pán)不彈出8. node.js - 在vuejs-templates/webpack中dev-server.js里為什么要exports readyPromise?9. css3 - rem布局下,用戶(hù)瀏覽器的最小字號(hào)是12px怎么辦?10. objective-c - iOS開(kāi)發(fā)支付寶和微信支付完成為什么跳轉(zhuǎn)到了之前開(kāi)發(fā)的一個(gè)app?
