fix(admin): Correct admin initialization and password salt compatibility

This commit is contained in:
2026-04-18 21:02:03 +08:00
parent 9275fa238d
commit 9820d2f020
3 changed files with 7 additions and 7 deletions
@@ -49,7 +49,7 @@ public class AdminUserInitService implements ApplicationRunner {
adminUser.setRealName("系统管理员"); adminUser.setRealName("系统管理员");
adminUser.setEmail("admin@example.com"); adminUser.setEmail("admin@example.com");
adminUser.setStatus(1); // 正常状态 adminUser.setStatus(1); // 正常状态
adminUser.setSalt(null); adminUser.setSalt(passwordService.generateSalt());
adminUser.setCreatedBy("system"); adminUser.setCreatedBy("system");
adminUser.setUpdatedBy("system"); adminUser.setUpdatedBy("system");
adminUser.setCreateTime(LocalDateTime.now()); adminUser.setCreateTime(LocalDateTime.now());
@@ -221,7 +221,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
} else { } else {
// 不更新密码 // 不更新密码
adminUser.setPassword(null); adminUser.setPassword(null);
adminUser.setSalt(null); // 同时不更新盐值 adminUser.setSalt(""); // 使用空串兼容非空字段约束
} }
adminUser.setUpdatedBy(operator); adminUser.setUpdatedBy(operator);
@@ -307,4 +307,4 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
return Result.success(); return Result.success();
} }
} }
@@ -20,7 +20,7 @@ public class PasswordServiceImpl implements PasswordService {
@Override @Override
public String generateSalt() { public String generateSalt() {
// BCrypt已包含盐值,此方法不再需要 // 兼容历史表结构,salt 字段仍要求非空
return ""; return "";
} }
@@ -44,7 +44,7 @@ public class PasswordServiceImpl implements PasswordService {
public void setPassword(AdminUser user, String rawPassword) { public void setPassword(AdminUser user, String rawPassword) {
// 直接使用BCrypt加密密码 // 直接使用BCrypt加密密码
user.setPassword(passwordEncoder.encode(rawPassword)); user.setPassword(passwordEncoder.encode(rawPassword));
// 不再需要设置盐值 // BCrypt 已内置盐值,这里仅写入空串以兼容非空字段约束
user.setSalt(null); user.setSalt(generateSalt());
} }
} }