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

Spring Security 6自定义登录页迁移报错求助

解决Spring Security 6迁移后MvcHandlerMappingIntrospector Bean缺失异常

问题原因

Spring Security 6中,当配置里使用mvcMatcher()这类基于Spring MVC的请求匹配规则,或者依赖MVC路由解析功能时,需要MvcHandlerMappingIntrospector Bean来处理MVC映射信息,该Bean在部分场景下不会自动注册,从而抛出缺失异常。

解决方案

1. 手动注册MvcHandlerMappingIntrospector Bean

在你的Spring Security配置类中添加以下Bean定义:

@Configuration
public class SecurityConfig {

    // 注册MvcHandlerMappingIntrospector Bean
    @Bean
    MvcHandlerMappingIntrospector mvcHandlerMappingIntrospector(ApplicationContext applicationContext) {
        return new MvcHandlerMappingIntrospector(applicationContext);
    }

    @Bean
    SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(auth -> auth
                .mvcMatcher("/login").permitAll()
                .anyRequest().authenticated()
            )
            .formLogin(form -> form
                .loginPage("/login")
                .permitAll()
            );
        return http.build();
    }
}

2. 替换MVC匹配器(可选)

如果不需要依赖Spring MVC的匹配规则,可以将mvcMatcher()替换为antMatcher()或requestMatchers(),避免依赖MvcHandlerMappingIntrospector:

@Bean
SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http
        .authorizeHttpRequests(auth -> auth
            // 用antMatcher替代mvcMatcher
            .antMatcher("/login").permitAll()
            .anyRequest().authenticated()
        )
        .formLogin(form -> form
            .loginPage("/login")
            .permitAll()
        );
    return http.build();
}

3. 检查依赖完整性

确保项目已正确引入Spring MVC相关依赖:

  • Spring Boot项目:确保pom.xml(Maven)或build.gradle(Gradle)中包含spring-boot-starter-web依赖,它会自动引入Spring MVC的核心组件。
  • 非Spring Boot项目:手动引入spring-webmvc依赖,并确保版本与Spring Security 6兼容。

4. 确认配置类扫描范围

确保你的SecurityConfig配置类被Spring容器扫描到,比如添加@Configuration注解,并位于Spring组件扫描的包路径下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:31:42