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 验证,判断用户是否登录。

  • 相关阅读:
    iterm2 配色修改
    让Dock自动 显示/隐藏 不再有延迟
    Xcode更改配色方案
    CocoaPods安装与使用
    CocoaPods安装和使用及问题:Setting up CocoaPods master repo
    CocoaPods安装和使用教程
    RubyGems 镜像
    iOS Mac系统下Ruby环境安装
    MAC机中安装RUBY环境
    Kibana+Logstash+Elasticsearch 日志查询系统
  • 原文地址:https://www.cnblogs.com/yang21/p/9977264.html
Copyright © 2011-2022 走看看