已引入spring-boot-starter-security,仍无法解析WebSecurityConfigurerAdapter
问题分析与解决方案
你的核心问题是使用了已被弃用的WebSecurityConfigurerAdapter类,这个类在Spring Security 5.7版本之后就不再推荐使用,官方已改用基于Bean的配置方式替代传统的继承式配置。你提到的导入错误本质上是该类设计被淘汰导致的配置逻辑不兼容问题。
修正步骤
1. 移除过时的依赖与继承
删除以下内容:
- 导入语句:
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - 类的继承:
extends WebSecurityConfigurerAdapter
2. 改用SecurityFilterChain Bean配置HttpSecurity
将原来重写的configure(HttpSecurity)方法替换为SecurityFilterChain类型的Bean定义。
3. 调整UserDetailsService Bean
去掉@Override注解,直接将其定义为独立的Bean。
修正后的完整代码
package com.Lumber.LumberIntegration.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; @Configuration @EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeRequests(authorizeRequests -> authorizeRequests .antMatchers("/login").permitAll() // 允许登录页面匿名访问 .anyRequest().authenticated() ) .formLogin(formLogin -> formLogin .loginPage("/login") // 自定义登录页面路径 .permitAll() ) .logout(logout -> logout .permitAll() ); return http.build(); } @Bean public UserDetailsService userDetailsService() { InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); manager.createUser(User.withUsername("customUser") .password("{noop}customPassword") .roles("USER").build()); return manager; } }
Maven缓存清理方法
如果修改后仍有依赖或编译问题,可执行以下操作:
- 执行Maven命令:
mvn clean install,清理旧编译文件并重新构建项目 - IDE缓存清理(以IntelliJ为例):点击
File->Invalidate Caches...,选择Invalidate and Restart
内容的提问来源于stack exchange,提问作者AppleDev3
相关产品推荐
相关产品推荐

