You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot项目WebSecurityConfigurerAdapter配置类未被调用问题求助

问题根因&解决方案
    1. 移除启动类的Security自动配置排除
      你主启动类的注解@SpringBootApplication(exclude = { SecurityAutoConfiguration.class })直接关闭了Spring Security的所有自动装配逻辑,这是你自定义安全配置类完全不生效、所有println都不打印的核心原因。
      修改方式:把启动类注解中的exclude = { SecurityAutoConfiguration.class }删除,修改后启动类代码为:
@SpringBootApplication
@EntityScan({"com.shopme.common.entity", "com.shopme.admin.user"})
public class ShopmeBackendApplication {
    public static void main(String[] args) {
        SpringApplication.run(ShopmeBackendApplication.class, args);
    }
}
    1. 删除主控制器中自定义的POST登录接口
      你在MainController中写了@PostMapping("/login")的方法,直接覆盖了Spring Security默认的登录请求处理逻辑,导致登录提交不会走认证校验、直接跳转首页。
      修改方式:删除MainController中的如下代码即可:
@PostMapping("/login")
public String login() {
    System.out.println("login attempt");
    return "index";
}

Spring Security会自动接管/login路径的POST请求,执行你配置的用户名密码校验逻辑。

    1. 可选优化(后续切换自定义认证时需要)
      你当前写的authenicationProvider()方法没有加@Bean注解,如果后续要切换为自定义的ShopmeUserDetailsService认证,需要给这个方法加上@Bean注解,同时放开configure(AuthenticationManagerBuilder auth)方法中对应注释的代码即可。

验证效果

修改完成后重启项目:

  1. 控制台会打印你在WebSecurityConfig中写的所有System.out内容,说明配置类已经被正常加载
  2. 访问任意需要权限的路径(如/users)会自动跳转到/login登录页
  3. 输入你配置的内存用户名密码(如admin/adminPass)即可成功登录,跳转至系统页面

内容的提问来源于stack exchange,提问作者daryeljohnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:54:02