跳到主要内容

Spring Security源码(六):FilterChainProxy 是如何运行的?

文章目录

  • 〇、上篇回顾
  • 一、关于 SpringBoot 中 Filter 加入 Servlet 容器的方式
    • 方式一
  • 方式二
  • 方式三
  • 方式四
  • 二、核心过滤器是如何加入 Sevlet 容器的?
    • SecurityFilterAutoConfiguration
  • 类说明
  • 三、运行过程
  • 四、总结
  • 五、系列文章
    • Spring Security 系列
  • Spring Security OAuth 系列

〇、上篇回顾

  • 上篇文章学习了如何通过建造者和配置器创建出核心过滤器 springSecurityFilterChain ,但也只是个加入Bean容器的对象而已,对于如何在项目中运行起来的,要让我们创建的 Filter 有效需要将其加入 Servlet 容器,一起来看看。

一、关于 SpringBoot 中 Filter 加入 Servlet 容器的方式

> 在学习如何将核心过滤器加入 Servlet 容器之前,我们先来了解 SpringBoot 中添加 Filter 到 Servlet 容器的方式。

方式一

  • 使用 @WebFilter 注解,@ServletComponentScan 所扫描的包路径必须包含该 Filter
@WebFilter(filterName = "myFilter",urlPatterns = "/*")
public class MyFilter implements Filter {


@Override
public void init(FilterConfig filterConfig) throws ServletException {


}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {


}

@Override
public void destroy() {


}
}

@SpringBootApplication
@EnableAutoConfiguration
@EnableWebMvc
@ServletComponentScan(basePackages = "com.fanyin.eghm")
public class EghmApplication {



public static void main(String[] args) {


SpringApplication.run(EghmApplication.class, args);
}
}