当前位置: 首页 > ai >正文

springboot3.5整合Spring Security6.5默认密码没有打印输出控制台排查过程

huomastar开源项目踩坑一

同志们天塌了,这还没有开始就遇到问题了。计划项目初始阶段先把权限那一块先搞定的。就在网上借鉴了一些博客的指导,计划先将认证授权模块先搞起来,结果发现和博主的不一致。又排查了一个多小时,现在将排查过程记录下来,避免大家踩同样的坑。

踩坑过程

  • 先借鉴网上其他博主的教程,因为之前没有系统了解Spring Security,想着快速开始。直接贴上了教程上的代码:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-oauth2-authorization-server</artifactId><version>1.0.2</version>
</dependency>

然后教程上说会出现如下图所说的默认密码,但是偏偏到我这里就不行了。这就奇怪了,我就不信邪了。这不都是默认的吗,这代码还没写呢,怎么就掉坑里面了。
在这里插入图片描述

排查记录

  • 上网搜索:
    搜问答:springboot3.5 Security没有打印默认密码
    发现还有遇到同样问题的同学,换关键词搜了好几次也没有发现想要的答案。
    在这里插入图片描述
  • 问AI
    提问:springboot3.5能启动,但是spring-boot-starter-security 没有打印默认密码
    AI给出了下面的参考意见,日志配置了,没有效果。
    在这里插入图片描述
    在这里插入图片描述
    不过,这个配置属性是不是有效果呢?确实是有效果,但是这还是和我想要的默认效果不一样。
    在这里插入图片描述
  • 看细节,但是各位看到了吗,这个日志是送什么地方打印出来的呢?

[2025-06-08 11:10:08,071] WARN
(UserDetailsServiceAutoConfiguration.java:90#getOrDeducePassword)

这就很关键了,既然是从这里打印出来的,那么是不是可以断点调试了?好,那就直接断点进去。
在这里插入图片描述
看到这里这个用户没有,继续往往上跟。感觉真相快要出来了。断点打上,继续来一遍。
在这里插入图片描述
发现确实能进来SecurityProperties,但是我又发现这个。这就是用配置项就能就来的,所以这个和默认的没啥关系。
在这里插入图片描述
干掉配置项,再试一遍,完蛋,这又GG了。连断点都没有进去。
在这里插入图片描述
在这里插入图片描述
不过不要着急,我们看到希望了。看到下面这个代码了吗?既然和配置项有关,那么我们看一下这个静态类是干嘛的?
在这里插入图片描述
看下面的图,这个类UserDetailsServiceAutoConfiguration有一个条件注解,那也就是说这个类会影响类UserDetailsServiceAutoConfiguration是否要自动配置。
在这里插入图片描述
仔细看这个代码,既然配置项能影响它,那么是不是第一个配置也能影响呢?
在这里插入图片描述
那就检查下哪里引入了这些个类。是不是有些似曾相识。哈哈哈,没错,我给你回忆一下。上图,这。。。
在这里插入图片描述

    @ConditionalOnMissingClass({"org.springframework.security.oauth2.client.registration.ClientRegistrationRepository", "org.springframework.security.oauth2.server.resource.introspection.OpaqueTokenIntrospector", "org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository"})

好像马上就要破案了,话不多说,我们直接开干。注释掉,直接重启,期待好消息。
在这里插入图片描述
在这里插入图片描述
这。。。,没啥变化呀?怎么回事,难道还有其他地方引入了这些类吗?
赶紧检查。这咋还在呀?我其他地方也没有引入它呀。
在这里插入图片描述
想要跳转到引入的地方,看看是谁引入了它。跳不过去。
在这里插入图片描述
看明白了吗,同学们。重新引入下,消失了,原来是没有刷新maven。
在这里插入图片描述
刷新maven后启动,嘿嘿,出来了。
Using generated security password: 9648b0cf-fdea-4384-b941-96d2d0d3c9ee
在这里插入图片描述

总结

遇到问题不要慌,由于之前没有看过源码,所以遇到这种小问题还是要花大量时间排查。不过也不必太过慌张,耐心点,总能找到蛛丝马迹的,然后就是慢慢跟代码。我们总能获得解决办法。希望大家也少遇到bug。

http://www.xdnf.cn/news/12840.html

相关文章:

  • DeepSeek 终章:破局之路,未来已来
  • 图像超分辨率
  • 爱抚宠物小程序源代码+lw+ppt
  • 数据库学习(三)——MySQL锁
  • for循环应用
  • 【西门子杯工业嵌入式-6-ADC采样基础】
  • 详细叙述一下Spring如何创建bean
  • Python训练营打卡DAY48
  • 华为IP(8)(OSPF开放最短路径优先)
  • 树状数组学习笔记
  • 振动力学:无阻尼多自由度系统(受迫振动)
  • SQL进阶之旅 Day 21:临时表与内存表应用
  • Spring MVC请求处理流程和DispatcherServlet机制解析
  • 【Go语言基础【18】】Map基础
  • 2025-04-28-堆、栈及其应用分析
  • 算法专题七:分治
  • 【CATIA的二次开发23】抽象对象Document涉及文档激活控制的方法
  • serv00 ssh登录保活脚本-邮件通知版
  • 【构建】CMake 常用函数和命令清单
  • leetcode189-轮转数组
  • Prefix Caching 详解:实现 KV Cache 的跨请求高效复用
  • c++对halcon的动态链接库dll封装及调用(细细讲)
  • 【CSS-8】深入理解CSS选择器权重:掌握样式优先级的关键
  • 【拆机系列】暴力拆解AOC E2270SWN6液晶显示屏
  • Python训练营打卡Day48(2025.6.8)
  • 【LangChain4J】LangChain4J 第三弹:多模态与文生图的实现
  • leetcode_56 合并区间
  • el-table的select回显问题
  • 图解JavaScript原型:原型链及其分析 | JavaScript图解
  • Alight Motion汉化版:视频剪辑,轻松上手