能否下载旧版本Spring Boot?因WebSecurityConfigurerAdapter已弃用
解决WebSecurityConfigurerAdapter弃用的两种方案
方案一:使用旧版Spring Boot
如果你坚持要用WebSecurityConfigurerAdapter,可以在项目的依赖管理文件里指定对应版本的Spring Boot:
- Maven(修改
pom.xml)示例:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.14</version> <!-- 该版本仍支持WebSecurityConfigurerAdapter --> <relativePath/> </parent>
- Gradle(修改
build.gradle)示例:
plugins { id 'org.springframework.boot' version '2.7.14' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'java' }
注意:旧版本不再接收安全更新,生产环境不建议长期使用。
方案二:适配Spring Security新写法(推荐)
新写法核心是用SecurityFilterChain和UserDetailsService替代,给你一个简单的等价实现示例:
@Configuration public class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(auth -> auth .requestMatchers("/public/**").permitAll() .anyRequest().authenticated() ) .formLogin(form -> form .loginPage("/login") .permitAll() ) .logout(logout -> logout.permitAll()); return http.build(); } @Bean public UserDetailsService userDetailsService() { UserDetails user = User.withUsername("user") .password("{noop}password") // {noop}表示不加密,生产环境需替换为加密方式 .roles("USER") .build(); return new InMemoryUserDetailsManager(user); } }
这个示例实现了传统WebSecurityConfigurerAdapter常用的功能:公共路径放行、其余路径需认证、表单登录与登出。
内容的提问来源于stack exchange,提问作者Rebecca
相关产品推荐
相关产品推荐

