解决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. 如何解决docker宿主机无法访问容器中的服务?2. java - xml 传输数据如何处理更好3. javascript - h5上的手机号默认没有识别4. 求大神帮我看看是哪里写错了 感谢细心解答5. mysql - 要取出数据库中按某字段排序后的前10,20,30条数据要怎么做?6. python - 类 对象 函数后面的参数问题,勉强看懂但是要自己写出来就感觉很困难7. javascript - 用原生的js获取body和用jquery获取body的的margin值为什么不一样?8. javascript - 想让图片上那个块,在增加块的宽度的时候向右边移动,而不是向左边移动。需要怎么解决?9. Python Selenium WebDriver如何刷新当前页面10. pycharm运行python3.6突然出现R6034问题,请问如何处理?

网公网安备