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

Spring Security配置不生效,无法读取数据库认证信息、不使用自定义登录页

问题根因

启动类的@ComponentScan注解仅配置了扫描mis.controller、mis.services两个包,你的Spring Security相关配置类(MyConfig、UserDetailsServiceImpl等)均存放在mis.config包下,不在Spring的组件扫描范围内,导致自定义安全配置未被加载,Spring Boot走了Security的默认自动配置逻辑,因此出现控制台生成默认密码、使用默认登录页、不读取数据库用户的现象。

修复方案

1. 修正组件扫描配置

修改BitmisApplication启动类的@ComponentScan注解,将mis.config加入扫描路径:

// 方案1:单独添加config包
@ComponentScan({"mis.controller", "mis.services", "mis.config"})

// 方案2:直接扫描顶层mis包,自动覆盖所有子包,后续新增包也无需额外配置
@ComponentScan("mis")

2. 补充自定义登录页配置(可选,仅当你需要使用自研登录页时调整)

当前你在MyConfig中仅配置了formLogin().permitAll(),使用的还是Spring Security自带的默认登录页,如果要替换为自己的登录页,调整configure(HttpSecurity http)方法的formLogin配置段:

.formLogin()
.loginPage("/custom-login") // 替换为你自定义登录页的访问路径
.permitAll()

同时需要在Controller中新增对应路径的接口返回登录页视图,若登录页涉及静态资源,也要在配置中放开静态资源的访问权限。

3. 验证效果

修改完成后重启项目,控制台不再输出Using generated security password: xxx的日志,即代表自定义安全配置加载成功,登录请求会自动走UserDetailsServiceImpl的loadUserByUsername方法查询数据库用户信息完成认证。


内容的提问来源于stack exchange,提问作者348_Amit Potdukhe.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:54:07