Java的springboot2.0中WebFilter过滤器注解如何优雅的设置不拦截某些请求?

百度说可以通过req.getURI手动判断,可我不想这样,觉得不优雅呢

Configuration
@WebFilter(filterName = "myFilter", urlPatterns = "/*")
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig arg0) throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;

        String cookieToken =CookieUtils.getCookie(req,"token");

        String headerToken = req.getHeader("token");
        if (TokenUtils.notCorrect(headerToken)){
            return;
        }
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
    }
}
阅读 21k
4 个回答
String path = ((HttpServletRequest) request).getRequestURI();
if (path.startsWith("/specialpath/")) {
    chain.doFilter(request, response); // 排除的url
} else {
    // 拦截的url
如何优雅的设置不拦截某些请求?

比如说哪些请求?…

觉得手动判断不够优雅的话可以用注解,自己写一套逻辑,用有无注解来标识是否需要拦截

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题