首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将Spring Boot 2.1.9升级到2.2.0,应用程序上下文中没有AuthenticationManager

基础概念

AuthenticationManager 是 Spring Security 中的一个核心接口,用于处理认证(Authentication)过程。它负责验证用户的身份信息,通常与 UserDetailsService 配合使用。

升级原因及优势

从 Spring Boot 2.1.9 升级到 2.2.0 可以带来以下优势:

  1. 新特性:2.2.0 引入了许多新特性和改进,例如对 OAuth2 的增强支持、更高效的 HTTP/2 支持等。
  2. 安全性:新版本通常会修复已知的安全漏洞,提高应用程序的安全性。
  3. 性能优化:新版本可能会对性能进行优化,提升应用程序的运行效率。

类型

Spring Boot 升级属于版本升级,具体是从 2.1.x 升级到 2.2.x。

应用场景

适用于需要使用 Spring Security 进行身份验证的应用程序。

问题原因

在 Spring Boot 2.2.0 中,默认情况下 AuthenticationManager 不再自动配置。这是因为 Spring Security 5.2 引入了更灵活的认证管理方式,需要开发者显式地配置 AuthenticationManager

解决方法

要解决这个问题,你需要在你的 Spring Boot 配置类中显式地定义 AuthenticationManager。以下是一个示例:

代码语言:txt
复制
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    @Bean
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }

    // 其他安全配置
}

参考链接

  1. Spring Boot 2.2.0 Release Notes
  2. Spring Security Documentation

通过以上步骤,你应该能够在升级到 Spring Boot 2.2.0 后正确配置 AuthenticationManager,确保应用程序的安全性和正常运行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

不推荐使用Spring Boot 2.2.0

版本变化 依赖 项目版本 目标版本 Spring Boot 2.1.9.RELEASE 2.2.0.RELEASE Spring Cloud Greenwich.SR3 Hoxton.RC1 Spring...Boot Admin 2.1.6 2.2.0 Hoxton 版本依赖厂库 目前 Spring Cloud Hoxton 未发布 RELEASE 版本,官方计划 本月发布 ?... spring boot admin 未发布 2.2.0 适配版本 解决方法: 使用快照版本2.2.0-SNAPSHOT, 需要配置快照厂库 <id...总结 由于使用的 Spring Cloud RC 版本未同步到 阿里云等国内镜像厂库 mvn clean install 可能会出现失败,建议重复执行几次即可 ---- 鉴于Spring Boot 2.2.0...和 mybatis 的不兼容问题,2.2.1 会修复这个问题,建议暂时不要升级2.2.0 直接使用 2.2.1 2.2.1 已经发布,请直接升级到2.2.1 即可解决兼容问题 (2019年11月07

1.1K20
  • Spring Boot 2.0 迁移指南

    前提 本文档帮助您把应用程序迁移到 Spring Boot 2.0。 在你开始之前 首先,Spring Boot 2.0需要Java 8或更高版本。Java 6 和 7 不再受支持。...如果您的应用程序希望请求"GET /projects/spring-boot.json"映射到@GetMapping("/projects/spring-boot")映射,则此更改会影响您。...为了支持这些用例,现在可以定义一个HibernatePropertiesCustomizerbean,它可以完全控制 Hibernate 属性,包括注册在上下文中声明为 bean 的 Hibernate...为确保模式升级顺利进行,请按照以下说明操作: 首先将您的1.5.xSpring Boot 应用程序升级到 Flyway 4,请参阅Maven和Gradle的说明。...一旦您的架构升级到了 Flyway 4,升级到 Spring Boot 2 并再次运行迁移以您的应用程序移植到 Flyway 5。

    2.1K20

    Spring Boot 1.0 到Spring Boot 2.0 迁移指南

    ApplicationStartedEvent在上下文刷新之后但在任何应用程序和命令行参数被调用之前发送。 ApplicationReadyEvent在任何应用程序和命令行参数被调用后发送。...如果您的应用程序希望请求"GET /projects/spring-boot.json"映射到@GetMapping("/projects/spring-boot")映射,则此更改会影响您。...为了支持这些用例,现在可以定义一个HibernatePropertiesCustomizerbean,它可以完全控制 Hibernate 属性,包括注册在上下文中声明为 bean 的 Hibernate...为确保模式升级顺利进行,请按照以下说明操作: 首先将您的1.5.xSpring Boot 应用程序升级到 Flyway 4,请参阅Maven和Gradle的说明。...一旦您的架构升级到了 Flyway 4,升级到 Spring Boot 2 并再次运行迁移以您的应用程序移植到 Flyway 5。

    2.5K42

    Spring Boot2.0迁移概括

    ApplicationStartedEvent在上下文刷新之后但在任何应用程序和命令行参数被调用之前发送。 ApplicationReadyEvent在任何应用程序和命令行参数被调用后发送。...如果您的应用程序希望请求”GET /projects/spring-boot.json”映射到@GetMapping(“/projects/spring-boot”)映射,则此更改会影响您。...为了支持这些用例,现在可以定义一个HibernatePropertiesCustomizerbean,它可以完全控制 Hibernate 属性,包括注册在上下文中声明为 bean 的 Hibernate...为确保模式升级顺利进行,请按照以下说明操作: 首先将您的1.5.xSpring Boot 应用程序升级到 Flyway 4,请参阅Maven和Gradle的说明。...一旦您的架构升级到了 Flyway 4,升级到 Spring Boot 2 并再次运行迁移以您的应用程序移植到 Flyway 5。

    2.5K20

    Spring Security 架构简介

    1.1.2 Spring Boot Spring Boot 是基于 Spring Framework,它为你的 Spring 应用程序提供了自动装配特性,它的设计目标是让你尽可能快的上手应用程序的开发。...以下是 Spring Boot 所拥有的一些特性: 可以创建独立的 Spring 应用程序,并且基于 Maven 或 Gradle 插件,可以创建可执行的 JARs 和 WARs; 内嵌 Tomcat...它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了 Spring IoC(Inversion of Control 控制反转),DI(Dependency Injection 依赖注入...集成 SpringSpring BootSpring Security 三者的关系如下图所示: ?...令牌传递给 AuthenticationManager 的实例以进行验证。 AuthenticationManager 在成功验证时返回完全填充的 Authentication 实例。

    2.7K51

    【译】Spring 官方教程:Spring Security 架构

    Spring Boot 在本文中也经常被提及,因为它为安全应用程序提供了一些默认的配置,了解它如何与整个体系结构相适应是非常有用的。...在 Spring Boot 应用程序中,您可以 @Autowired 全局认证器变成另一个bean,除非你自己明确暴露,否则不能使用本地变量。...Spring Boot 提供了一个默认的全局 AuthenticationManager(只有一个用户),除非你提供自定义 AuthenticationManager类型的bean。...没有自定义安全配置的Spring Boot应用程序有 n 个过滤器链,通常n = 6。...应用安全规则与Actuator 相结合 如果你使用Spring Boot Actuator作为管理端点,你可能希望它们是安全的,默认情况下它们是。

    1.8K70

    Spring Security 架构简介

    1.1.2 Spring Boot Spring Boot 是基于 Spring Framework,它为你的 Spring 应用程序提供了自动装配特性,它的设计目标是让你尽可能快的上手应用程序的开发。...以下是 Spring Boot 所拥有的一些特性: 可以创建独立的 Spring 应用程序,并且基于 Maven 或 Gradle 插件,可以创建可执行的 JARs 和 WARs; 内嵌 Tomcat...它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了 Spring IoC(Inversion of Control 控制反转),DI(Dependency Injection 依赖注入...集成 SpringSpring BootSpring Security 三者的关系如下图所示: ?...令牌传递给 AuthenticationManager 的实例以进行验证。AuthenticationManager 在成功验证时返回完全填充的 Authentication 实例。

    67810

    不推荐使用Spring Boot 2.2.0 ,这个问题你肯定会遇

    > 项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注 最新版本实践 > 上篇文章讲到 Spring Boot 2.2.0 和 MyBatis...同时可以像其他任何Spring bean一样在整个应用程序代码中注入和使用此bean。...boot 2.2 之前版本 必须使用 @Component 或者 @Configuration 声明成Spring Bean,不然无法注入 这里注意下 ConfigurationProperties.../spring-boot/issues/16612) 所以 Spring Boot 2.2.1 默认关闭了这个功能 若想开启,只需要在 启动类加上 ?...总结 当你从 2.1.X 升级到 2.2 ,肯定不会遇到这个问题,因为默认兼容 @Component 扫描的形式 如果从 2.2.0 升级到 2.2.1 , 一定要特别小心此处,可能会导致你的配置类全部失效

    48600

    轻松上手SpringBoot Security + JWT Hello World示例

    在本教程中,我们开发一个Spring Boot应用程序,该应用程序使用JWT身份验证来保护公开的REST API。在此示例中,我们将使用硬编码的用户和密码进行用户身份验证。...在下一个教程中,我们实现Spring Boot + JWT + MySQL JPA,用于存储和获取用户凭证。任何用户只有拥有有效的JSON Web Token(JWT)才能使用此API。...为了更好地理解,我们分阶段开发此项目: 开发一个Spring Boot应用程序,该应用程序使用/hello路径地址公开一个简单的GET RESTAPI。...Spring Security和JWT配置 我们配置Spring Security和JWT来执行两个操作 生成JWT---暴露/authenticate接口。...如果它具有有效的JWT令牌,则它将在上下文中设置Authentication,以指定当前用户已通过身份验证。

    7K20

    Spring」认证安全架构指南

    Spring Boot 也经常被引用,因为它为安全应用程序提供了一些默认行为,并且了解它如何与整体架构相适应会很有用。所有原则同样适用于不使用 Spring Boot应用程序。...在 Spring Boot 应用程序中,您可以@Autowired全局 bean 放入另一个 bean,但您不能对本地 bean 执行此操作,除非您自己显式公开它。...Spring Boot 提供了一个默认的全局AuthenticationManager(只有一个用户),除非您通过提供自己的 bean 类型来抢占它AuthenticationManager。...Spring SecurityFilterChainProxy请求分派到匹配的第一个链。没有自定义安全配置的普通 Spring Boot 应用程序有几个(称为 n)过滤器链,其中通常 n=6。...应用程序安全规则与执行器规则相结合如果您将 Spring Boot Actuator 用于管理端点,您可能希望它们是安全的,并且默认情况下它们是安全的。

    96230

    Spring认证-Spring 安全架构专题教程

    Spring Boot 也经常被引用,因为它为安全应用程序提供了一些默认行为,并且有助于理解它如何适应整体架构。 笔记所有原则同样适用于不使用 Spring Boot应用程序。...在 Spring Boot 应用程序中,您可以@Autowired全局 bean 放入另一个 bean,但除非您自己显式地公开它,否则不能对本地 bean 执行此操作。...Spring Boot 提供了一个默认的全局变量AuthenticationManager(只有一个用户),除非你通过提供你自己的类型 bean 来抢占它AuthenticationManager。...没有自定义安全配置的 vanilla Spring Boot 应用程序有多个(称为 n 个)过滤器链,其中通常 n=6。...应用程序安全规则与执行器规则相结合 如果您将 Spring Boot Actuator 用于管理端点,您可能希望它们是安全的,并且默认情况下,它们是安全的。

    71820
    领券