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

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。

相关文章:

  • BeanFactory 和 FactoryBean 有何区别与联系?
  • 在vs2022中的program.cs中已经没有app.useEndpoints
  • 分词算法总结:不同分词算法的优点和缺点
  • K8S认证|CKS题库+答案| 8. 沙箱运行容器 gVisor
  • 从入门到实战:AI学习路线全解析——避坑指南
  • AUTOSAR实战教程--开放式通用DoIP刷写工具OpenOTA开发计划
  • shell脚本 --案例实操
  • 【优选算法】模拟 问题算法
  • 【CSS-7】深入解析CSS伪类:从基础到高级应用
  • 73常用控件_QFormLayout的使用
  • SQL 注入开放与修复
  • 针对异构数据的联邦学习
  • Linux 基础IO(下)
  • D25异常处理
  • 【学习笔记】深入理解Java虚拟机学习笔记——第5章 调优案例分析与实战
  • NLP学习路线图(三十二): 模型压缩与优化
  • 从认识AI开始-----变分自编码器:从AE到VAE
  • LangChain工具集成实战:构建智能问答系统完整指南
  • springboot3.x对接AI智谱清言
  • 前端获取接口数据流程
  • 河北集团网站建设/seo和sem的区别与联系
  • 做网站开发的有外快嘛/磁力猫引擎入口
  • wordpress网站怎么百度的到/杭州关键词推广优化方案
  • 湖州做网站公司哪家好/网站域名备案查询
  • 如何增加网站收录/千锋教育学费多少
  • 大连网站建设 领超最好/个人怎么建立网站