fix: 修复从库初始化时密码解密错误

问题:从配置文件读取的密码是明文,但代码尝试对它进行解密,导致解密失败

修复:
- 将 masterPasswordDecrypted 改为 masterPasswordPlain
- 从配置文件读取的密码是明文,不需要解密
- 只有从数据库读取的密码才是加密的,需要解密
This commit is contained in:
Kris 2026-01-24 20:43:05 +08:00
parent e80489530b
commit c2d975e56f

View File

@ -464,14 +464,14 @@ public class SysDatasourceConfigServiceImpl implements ISysDatasourceConfigServi
throw new RuntimeException("数据源名称已存在:" + environmentCode);
}
String masterPasswordDecrypted = decryptPassword(masterPassword);
String masterPasswordPlain = masterPassword;
Connection connection = null;
Statement statement = null;
SysDatasourceConfig slaveConfig = null;
try {
connection = DriverManager.getConnection(masterUrl, masterUsername, masterPasswordDecrypted);
connection = DriverManager.getConnection(masterUrl, masterUsername, masterPasswordPlain);
statement = connection.createStatement();
String createDbSql = String.format("CREATE DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci", slaveDbName);
@ -504,7 +504,7 @@ public class SysDatasourceConfigServiceImpl implements ISysDatasourceConfigServi
log.info("[从库创建] 数据源配置写入成功, ID: {}", slaveConfig.getId());
String slaveJdbcUrl = buildJdbcUrl(slaveConfig);
dynamicDataSourceManager.addDynamicDataSource(slaveConfig.getDsName(), slaveJdbcUrl, slaveConfig.getUsername(), masterPasswordDecrypted);
dynamicDataSourceManager.addDynamicDataSource(slaveConfig.getDsName(), slaveJdbcUrl, slaveConfig.getUsername(), masterPasswordPlain);
log.info("[从库创建] 数据源注册成功: {}", slaveConfig.getDsName());
switchDataSource(slaveConfig.getDsName());