实现原理
官方地址:
https://docs.spring.io/spring-security/site/docs/5.3.0.RELEASE/reference/html5/#prerequisites
虽然在代码中只引入spring security一个依赖,但是也引入了spring security许多默认等过滤器。
在spring security中认证、授权等功能,都是基于过滤器完成的。
DelegatingFilterProxy
这个过滤器起到了桥梁等作用,它允许在 Servlet 容器的生命周期和 Spring 的应用程序上下文之间架起桥接。Servlet 容器允许使用自己的标准注册过滤器,但它不知道 Spring 定义的 Beans。DedelegateatingFilterProxy 可以通过标准的 Servlet 容器机制注册,但将所有工作委托给实现 Filter 的 Spring Bean。
FilterChainProxy
FilterChainProxy 是 Spring Security 使用的核心。Spring Security 的 Servlet 支持包含在 FilterChainProxy 中。FilterChainProxy是Spring Security提供的特殊过滤器,它允许通过SecurityFilterChain委托给许多过滤器实例。由于 FilterChainProxy 是一个 Bean,因此它通常包装在 DelegatingFilterProxy 中。