返回

SpringBoot3 + SpringSecurity6.0 完美兼容, 无缝衔接

后端

升级 Spring Security:从 5.x 到 6.0 的轻松指南

简介

随着 Spring Boot 3.0 的推出,您可能会考虑将其与 Spring Security 6.0 结合使用以获得最佳性能。本文将逐步指导您完成迁移过程,让您轻松无缝地使用 Spring Security 的最新功能。

步骤 1:升级 Spring Boot 至 3.0

首先,按照 Spring Boot 官方指南将您的应用程序升级至 3.0。

步骤 2:升级 Spring Security 至 6.0

现在,您可以访问 Spring Security 的快照版本并对其进行升级。

步骤 3:更新 pom.xml 文件

在您的 pom.xml 文件中添加以下依赖项:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-config</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-core</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-web</artifactId>
</dependency>

步骤 4:更新配置类

将以下代码添加到您的配置类中:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/admin/**").hasRole("ADMIN")
            .antMatchers("/user/**").hasRole("USER")
            .antMatchers("/", "/login").permitAll()
            .and()
            .formLogin()
            .loginPage("/login")
            .defaultSuccessUrl("/")
            .failureUrl("/login?error")
            .and()
            .logout()
            .logoutUrl("/logout")
            .logoutSuccessUrl("/");
    }

}

步骤 5:重新启动应用程序

最后,重新启动应用程序以完成升级。

常见问题解答

  • 找不到 Spring Security 6.0 的依赖项。

使用 Spring Security 的快照版本。

  • 收到错误消息“找不到方法 SpringSecurityWebProviderRegistrationCustomizer.addWebProvider”。

使用新的 SpringSecurityCustomizer 类代替 SpringSecurityWebProviderRegistrationCustomizer 类。

  • 收到错误消息“找不到方法 WebSecurityCustomizer.addFilter”。

使用新的 SecurityCustomizer 类代替 WebSecurityCustomizer 类。

  • 升级后我的应用程序为何不再运行?

检查您的配置类是否已更新,并确保您已删除不再受支持的 Spring Security 类。

  • 如何配置自定義安全過濾器?

使用新的 SecurityFilterChain 介面配置自定義過濾器。

結論

遵循本文中概述的步驟,您可以順利地將 Spring Security 從 5.x 升級到 6.0,並在 Spring Boot 3.0 中享受其最新功能。升級過程簡單明瞭,讓您專注於應用程序開發,而無需擔心安全問題。