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

Spring Boot 3.0.7中springSecurityFilterChain类型不匹配问题求助

解决Spring Security中springSecurityFilterChain类型不匹配异常

问题背景

使用Spring Boot 3.0.7、Spring Security 6.0.9,在Java 17或19环境下开发OAuth客户端应用,应用编译及启动正常,但访问localhost:8080时立即抛出异常:

org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'springSecurityFilterChain' is expected to be of type 'jakarta.servlet.Filter' but was actually of type 'org.springframework.security.web.DefaultSecurityFilterChain'

疑问

该Bean为何需要是jakarta.servlet.Filter类型?

原因解析

  1. Servlet容器的硬性要求:Web应用的请求过滤流程由Servlet容器(如Tomcat)管控,容器仅识别实现jakarta.servlet.Filter接口的类。Spring Security的核心逻辑是通过过滤器链拦截、处理请求,因此必须将其适配为Servlet容器能识别的Filter类型,才能融入请求处理流程。
  2. 代码中的错误触发点:你的Security配置类中错误导入了org.springframework.security.config.web.server.ServerHttpSecurity——这是Spring WebFlux(响应式Web框架)的配置类,而你的项目是基于Servlet的(依赖spring-boot-starter-web)。这种跨环境的API混入,导致Spring容器无法正确将SecurityFilterChain(具体实现为DefaultSecurityFilterChain)包装成Servlet容器所需的Filter类型,最终抛出类型不匹配异常。

修复方案

删除多余的WebFlux相关导入,确保配置类仅依赖Servlet环境的Spring Security API:

修正后的OAuth2LoginSecurityConfig代码:

package com.example.oauth2;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;

@Configuration
@EnableWebSecurity
public class OAuth2LoginSecurityConfig {

    @Bean
    SecurityFilterChain springSecurityFilterChain(HttpSecurity http) throws Exception {
        http.oauth2Login();
        return http.build();
    }
}

补充说明:SecurityFilterChain是Spring Security内部定义的过滤器链模型,正常情况下,框架会自动将其包装为FilterChainProxy(实现了jakarta.servlet.Filter接口),以此适配Servlet容器的要求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:55:14