jlzzjlzz亚洲乱熟在线播放

系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 腳本中心 > 其它 > 詳細頁面

解決Springboot @WebFilter攔截器未生效問題

時間:2020-10-07來源:www.farandoo.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攔截器未生效問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載