Spring Cloud Gateway安全配置启动异常(Spring Boot 3)
问题分析
启动报错的核心原因是依赖选型冲突+版本不兼容:
- 你使用了
spring-cloud-starter-gateway-mvc(MVC版网关),但Security配置是基于WebFlux生态的(@EnableWebFluxSecurity、ServerHttpSecurity),两者技术栈不匹配。 - Spring Boot 3.x中
WebFluxConfigurer接口已被移除,加上Spring Cloud版本未与Spring Boot 3.3.1适配,最终触发类找不到的异常。
解决方案
1. 替换网关依赖
将POM中的MVC版网关依赖替换为Spring Cloud Gateway默认的WebFlux版本:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>
注:Spring Cloud Gateway核心基于WebFlux构建,你的Security配置也是WebFlux风格,必须使用该依赖才能匹配。
2. 适配Spring Cloud版本
Spring Boot 3.3.1对应的Spring Cloud稳定版本是2023.0.2(代号Leyton SR2),在父POM的properties节点中明确版本:
<properties> <spring-cloud.version>2023.0.2</spring-cloud.version> </properties>
确保dependencyManagement中的Spring Cloud依赖引用该版本,避免版本不兼容问题。
3. 保留现有Security配置
你的SecurityConfig代码完全适配Spring Boot 3 + WebFlux Security,无需修改:
@Configuration @EnableWebFluxSecurity public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity serverHttpSecurity) { serverHttpSecurity .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(exchange -> exchange.pathMatchers("/eureka/**") .permitAll() .anyExchange() .authenticated()) .oauth2ResourceServer(spec -> spec.jwt(Customizer.withDefaults())); return serverHttpSecurity.build(); } }
4. 清理重构项目
执行Maven命令清理缓存并重新构建:
mvn clean install
内容的提问来源于stack exchange,提问作者user22749699
相关产品推荐
相关产品推荐

