You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

谁创建了FilterChainProxy实例?Spring Security过滤器机制疑问

谁在注入FilterChainProxy的实例?

Spring Boot 环境下

Spring Boot的Spring Security自动配置逻辑里,org.springframework.boot.autoconfigure.security.servlet.SecurityFilterChainConfiguration类负责创建并注册FilterChainProxy Bean:

  • 该类会依赖容器中所有SecurityFilterChain类型的Bean(也就是你自定义的过滤器链配置),通过构造器注入这些链来实例化FilterChainProxy。
  • 核心代码片段大致如下:
    @Bean
    public FilterChainProxy filterChainProxy(List<SecurityFilterChain> securityFilterChains) {
        return new FilterChainProxy(securityFilterChains);
    }
    
  • 这个Bean在容器中的默认名称是springSecurityFilterChain,你可以通过这个名称追踪到它的创建逻辑。

纯Spring Security(非Spring Boot)环境下

  • Java配置场景:org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration类的springSecurityFilterChain方法会生成FilterChainProxy实例,它会把通过HttpSecurity构建的过滤器链注入进去。
  • XML配置场景:传统的<security:http>标签由Spring Security的NamespaceHandler解析,最终会自动注册FilterChainProxy Bean(名称同样是springSecurityFilterChain),不需要手动写<bean>标签实例化。

为什么你没找到直接的new FilterChainProxy(..)调用?

Spring Security优先通过Spring容器管理Bean实例,而非硬编码直接创建,这样能充分利用依赖注入、生命周期管理等特性。你可以通过搜索Bean名称springSecurityFilterChain来定位创建逻辑,比直接找new调用更高效。

内容的提问来源于stack exchange,提问作者Shailesh Pratapwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:01:04