zoukankan      html  css  js  c++  java
  • Spring Boot 6:自定义filter

    自定义 Filter

    在项目中经常会使用 Filter 来实现记录请求日志、排除有 XSS 威胁的字符、执行权限验证等功能。Spring Boot 自动添加了 OrderedCharacterEncodingFilter 和 HiddenHttpMethodFilter,并且我们也可以自定义 Filter。

    新建 MyFilter 类,使用 doFilter() 方法:

     1 public class MyFilter implements Filter {
     2     @Override
     3     public void destroy() {
     4         // do Something
     5     }
     6 
     7     @Override
     8     public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain filterChain)
     9             throws IOException, ServletException {
    10         HttpServletRequest request = (HttpServletRequest) srequest;
    11         System.out.println("this is MyFilter,url :"+request.getRequestURI());
    12         filterChain.doFilter(srequest, sresponse);
    13     }
    14 
    15     @Override
    16     public void init(FilterConfig arg0) throws ServletException {
    17         // do Something
    18     }
    19 }

    将自定义 Filter 加入过滤链:

     1 @Configuration
     2 public class WebConfiguration {
     3     @Bean
     4     public RemoteIpFilter remoteIpFilter() {
     5         return new RemoteIpFilter();
     6     }
     7 
     8     @Bean
     9     public FilterRegistrationBean testFilterRegistration() {
    10 
    11         FilterRegistrationBean registration = new FilterRegistrationBean();
    12         registration.setFilter(new MyFilter());
    13         registration.addUrlPatterns("/*");
    14         registration.addInitParameter("paramName", "paramValue");
    15         registration.setName("MyFilter");
    16         registration.setOrder(1);
    17         return registration;
    18     }
    19 }

    添加完后启动项目,访问任意的 Url,都会看到控制台打印如下信息:

    this is MyFilter,url :/xxx
    说明 MyFilter 已经对所有的 Url 进行了监控,在实际使用的过程中,常常利用这个特性进行 session 验证,判断用户是否登录。

  • 相关阅读:
    笔记-归并排序
    Repeated Substring Pattern
    Assign Cookies
    Number of Boomerangs
    Paint Fence
    Path Sum III
    Valid Word Square
    Sum of Two Integers
    Find All Numbers Disappeared in an Array
    First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/yang21/p/9977264.html
Copyright © 2011-2022 走看看