欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 项目启动时找不到`org.springframework.security.authentication.AuthenticationManager`

项目启动时找不到`org.springframework.security.authentication.AuthenticationManager`

2025/2/24 16:22:32 来源:https://blog.csdn.net/qq_44850489/article/details/143105934  浏览:    关键词:项目启动时找不到`org.springframework.security.authentication.AuthenticationManager`

前言

项目启动报错,required a bean of type 'org.springframework.security.authentication.AuthenticationManager' that could not be found.


项目启动创建`SysLoginController`时找不到`org.springframework.security.authentication.AuthenticationManager`问题原因,解决方案,原理及源码分析

  • 前言
  • 1 具体问题
  • 2 问题原因
  • 3 解决方案
  • 4 原理分析

1 具体问题

项目启动报错,具体报错信息如下

2024-10-21 10:30:54.538 ERROR 17676 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : ***************************
APPLICATION FAILED TO START
***************************Description:Field loginService in com.haixin.initadmin.controller.system.SysLoginController required a bean of type 'org.springframework.security.authentication.AuthenticationManager' that could not be found.The injection point has the following annotations:- @org.springframework.beans.factory.annotation.Autowired(required=true)Action:Consider defining a bean of type 'org.springframework.security.authentication.AuthenticationManager' in your configuration.

2 问题原因

项目启动创建SysLoginController时找不到org.springframework.security.authentication.AuthenticationManager

3 解决方案

  1. 没有引入spring-boot-starter-securitypom依赖,如果是这个问题,一般在开发阶段就可以发现爆红出差。只需引入以下依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 自定义配置类中定义AuthenticationManager Bean

在spring boot 2.0X的默认配置中,不再自动注册AuthenticationManager ,如果使用自定义的安全配置类,需要手动暴露AuthenticationManager Bean
如下:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;@Configuration
public class SecurityConfig {@Beanpublic AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {return authenticationConfiguration.getAuthenticationManager();}
}

4 原理分析

AuthenticationManager是 Spring Security 框架中的一个核心接口,用于处理用户的认证逻辑。在应用程序中,当用户登录时,AuthenticationManager负责验证用户的凭据,并决定是否允许用户访问系统。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词