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

Spring Security无法禁用默认密码生成器,配置账号后仍无效

Spring Security 自动生成默认密码问题排查

问题描述

我正在为项目集成Spring Security,控制台会自动生成默认密码,希望禁用该功能。相关讨论指出只需在application.properties中配置user.name和user.password,但配置完成后,系统仍会生成自动密码,且不识别已配置的用户名。请问Spring Security近期是否有相关变更?

项目配置

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.8</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.code</groupId>
<artifactId>Spring-Security-V1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Spring-Security-V1</name>
<description>Demo project for Spring Boot</description>
<properties>
    <java.version>1.8</java.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
</project>

application.properties

spring.security.user.name=demouser
spring.security.user.password=password
spring.security.user.roles=manager

问题分析与解决

你的Spring Boot版本是2.7.8,对应的Spring Security 5.7.x并没有移除spring.security.user.*配置的功能,出现这种情况大概率是以下原因:

  • 密码未编码导致配置失效
    Spring Security 5之后强制要求密码必须编码,直接写明文密码会被系统忽略,进而自动生成默认用户。测试环境下可以给密码加上{noop}前缀标记为明文:

    spring.security.user.password={noop}password
    

    生产环境建议使用BCrypt等加密算法生成加密后的密码再配置。

  • 配置文件加载异常
    检查application.properties是否放在src/main/resources目录下,同时确认没有其他优先级更高的配置文件(比如application.yml、环境专属配置文件)覆盖了当前配置。可以在启动日志中搜索spring.security.user相关条目,验证配置是否成功加载。

  • 自定义Security配置冲突
    如果项目中存在WebSecurityConfigurerAdapter或SecurityFilterChain的自定义配置类,可能会覆盖默认的用户配置逻辑。这种情况下需要在自定义配置中手动引入配置文件的用户信息,或者直接在配置类中定义用户。

总结:2.7.8版本没有变更默认用户配置的规则,优先排查密码编码和配置加载问题,基本就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:06