,环境:Springboot2.4.12 + Spring Security 5.4.9,上一篇:《Spring Security权限控制系列(三)》,Spring Security核心是通过Filter过滤器链来完成一系列逻辑处理的,比如CSRF,认证,授权验证,Session管理等功能,这些过滤器都封装在DefaultSecurityFilterChain中,最终过滤器链会被添加到FilterChainProxy(该过滤器的Bean名称为springSecurityFilterChain)实际的过滤器中。,回顾过滤器FilterChainProxy与过滤器链DefaultSecurityFilterChain的创建过程:,WebSecurity#build构建FilterChainProxy过滤器。,以上就是创建核心过滤器FilterChainProxy的底层实现原理。,过滤器链的创建在上面其实已经提到了是如何被创建的主要就是三种方式:,使用了该种方式我们就不能再自定义WebSecurityConfigurerAdapter。,这种方式就是为每一个定义的URI创建一个没有过滤器的过滤器链。,该种方式在上面的源码展示中已经看到了,上面的代码片段。,自定义WebSecurityConfigurerAdapter子类将HttpSecurity添加到WebSecurity.securityFilterChainBuilders集合中。,HttpSecurity构建过滤器链。,到此应该非常清楚底层创建核心过滤器FilterChainProxy及该过滤器与SecurityFilterChain过滤器链的关系及过滤器链创建的几种方式。,过滤器链中的每一个过滤器都是有系统提供的,每种过滤器都处理不同方面的事,如果我们希望在现有的过滤器链中加入我们的一些处理过滤该如何操作?Spring Security为我们提供了往过滤器链中添加过滤器的接口,接下来通过实例来看如何向过滤器链中添加我们自定义的过滤器,以此实现我们自己的逻辑。,通过自定义的WebSecurityConfigurerAdapter#configure(HttpSecurity http)注册自定义的过滤器。下面4个方法来添加过滤器。,
© 版权声明
文章版权归作者所有,未经允许请勿转载。