Spring Security权限控制系列

环境:Springboot2.4.12 + Spring Security 5.4.9

本篇主要内容:

  1. 核心过滤器创建原理
  2. 自定义过滤器

核心过滤器创建原理

Spring Security核心是通过Filter过滤器链来完成一系列逻辑处理的,比如CSRF,认证,授权验证,Session管理等功能,这些过滤器都封装在DefaultSecurityFilterChain中,最终过滤器链会被添加到FilterChainProxy(该过滤器的Bean名称为springSecurityFilterChain)实际的过滤器中。

回顾过滤器FilterChainProxy与过滤器链DefaultSecurityFilterChain的创建过程:

  • FilterChainProxy创建
// 1.创建FilterChainProxy过程
public class WebSecurityConfiguration {
  @Bean(name = AbstractSecurityWebApplicationInitializer.DEFAULT_FILTER_NAME)
  public Filter springSecurityFilterChain() throws Exception {
    // 当前环境中是否有自定义SecurityConfigurer类(WebSecurityConfigurerAdapter);这里是自动注入的
    boolean hasConfigurers = this.webSecurityConfigurers != null && !this.webSecurityConfigurers.isEmpty();
    // 当前环境中是否有自定义的SecurityFilterChain过滤器链Bean(这里是自动注入的)
    boolean hasFilterChain = !this.securityFilterChains.isEmpty();
    // 如果当前环境上面的两种情况都存在则会抛出异常。只能有一个成立即可
    Assert.state(!(hasConfigurers && hasFilterChain), "Found WebSecurityConfigurerAdapter as well as SecurityFilterChain. Please select just one.");
    // 如果都不存在,则会创建一个默认的SecurityConfigurer
    // 当我们项目中只是引入Spring Security包时就是该中情况
    if (!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值