SpringSecurity 本质是一个过滤器链,

    执行流程:
    1、如果不是用SpringBoot,则需要配置一个DelegatingFilterProxy,
    如果是SpringBoot则它会自动配置好给我们的

    重点看三个过滤器

    1、FilterSecurityInterceptor:是一个方法级的权限过滤器, 基本位于过滤链的最底部。
    super.beforeInvocation(fi) 表示查看之前的 filter 是否通过。
    fi.getChain().doFilter(fi.getRequest(), fi.getResponse());表示真正的调用后台的服务。

    2、ExceptionTranslationFilter:是个异常过滤器,用来处理在认证授权过程中抛出的异常

    3、UsernamePasswordAuthenticationFilter :对/login 的 POST 请求做拦截,校验表单中用户
    名,密码。

    接下来看其是如何加载的:

    image.png

    image.png

    往上找,过滤器是怎么来的。
    image.png

    image.png