時間:2020-10-07來源:www.outletmksalestore.com作者:電腦系統城
問題描述
@WebFilter(filterName = “ssoFilter”,urlPatterns = “/*”)
未生效攔截器
解決方法
在springboot啟動類上添加
@ServletComponentScan(basePackages = “full.package.path”)
路徑替換為@WebFilter所在包
補充知識:在spring boot中使用@WebFilter配置filter(包括排除URL)
我就廢話不多說了,大家還是直接看代碼吧~
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
@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攔截器未生效問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
2022-03-01
Java PTA 計算3到7位 水仙花數實例2022-03-01
AJAX SpringBoot 前后端數據交互的項目實現2020-10-22
關于idea無法修改模板中jdk版本問題