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

Grails4.0.6升级至5.0.1出现HttpSecurity Bean创建失败报错如何解决

问题根因

错误日志明确指向org.springframework.security.authentication.AuthenticationManager接口存在3个实现Bean,且未指定主实例,导致Spring Security初始化HttpSecurity时无法选择默认实例,触发启动失败。
出现多实例的核心原因是依赖版本不兼容+安全组件重复注册:

  • Grails 5.0.1 内置Spring Boot 2.6.x、Spring Security 5.6.x版本,你手动额外声明了Spring Security相关包的版本,同时引入了适配Grails 4的spring-security-rest:3.0.1插件,该插件会独立注册一个AuthenticationManager实例
  • Spring Boot Actuator的安全自动配置、Spring Security核心上下文、第三方安全插件各自注册了AuthenticationManager,没有指定主实例导致冲突
解决方案

1. 清理冲突依赖

修改build.gradle,删除手动声明的Spring Security单独依赖,升级spring-security-rest插件到适配Grails5的版本:

// 删除以下三行手动声明的Spring Security依赖,直接使用Grails内置的匹配版本即可
// implementation "org.springframework.security:spring-security-config:5.6.0"
// implementation "org.springframework.security:spring-security-messaging:5.6.0"
// implementation "org.springframework.security:spring-security-web:5.6.0"

// 升级spring-security-rest到适配Grails5的4.0.x版本
implementation 'org.grails.plugins:spring-security-rest:4.0.0' 
implementation 'org.grails.plugins:spring-security-rest-gorm:4.0.0' 

2. 显式指定主AuthenticationManager

如果清理依赖后仍存在冲突,在你的Spring Security配置类中,显式声明主AuthenticationManager实例:

import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Primary
import org.springframework.security.authentication.AuthenticationManager
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter

class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Bean
    @Primary
    @Override
    AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean()
    }

    // 保留原有安全配置逻辑
}

3. 可选:禁用Actuator安全自动配置

如果你不需要对actuator端点做权限控制,可以在application.yml中关闭actuator的安全自动配置,避免额外的安全Bean注册:

management:
  security:
    enabled: false

操作完成后执行./gradlew clean清理缓存后重新启动应用即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:15:03