Spring-Security-文档笔记之过滤器

1. DelegatingFilterProxy

一个标准的Servlet Filter代理, 可集成Spring容器中的bean(实现Filter接口). 其工作机制伪代码:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
    // 从Spring 容器中查找指定名称的Filter的bean. 
    // 然后使用这个bean
    Filter delegate = getFilterBean(someFilterBeanName);
    delegate.doFilter(request, response);
}

2. FilterChainProxy

它是通过DelegatingFilterProxy被注入到servlet容器中. 负责选择合适的SecurityFilterChain来处理请求.

2.1. 配置

它包含一个SecurityFilterChain列表. 大多数应用只需要一个SecurityFilterChain. 如果配置有多个, 只有匹配的第一个SecurityFilterChain将被调用。

2.2. 请求防火墙

它包含一个HttpFirewall实例. 用于验证所有的请求.

2.3. FilterChainProxy类图
image.png

3. SecurityFilterChain

决定当前请求要调用哪些Security Filter. 通过RequestMatcher接口来匹配HttpServletRequest。其标准实现为DefaultSecurityFilterChain.

你可能感兴趣的:(Spring-Security-文档笔记之过滤器)