feat(admin): 修改密码功能(PBKDF2原密码校验 + 新密码≥8位合规 + 页面 + 导航入口)

- AdminUserService.changePassword: verify旧密码 + 新密码≥8位且≠原密码 + hash更新
- AdminController: GET/POST /admin/password(当前登录用户,Sa-Token loginId)
- password.ftl: 表单 + 前端JS预校验(长度/一致/新旧不同)
- _macros.ftl: 侧边栏footer加修改密码入口

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
连龙刚
2026-07-09 14:00:43 +08:00
co-authored by Claude
parent f401e8d065
commit 707f0b4824
5 changed files with 110 additions and 0 deletions
@@ -22,4 +22,16 @@ public interface AdminUserService {
* 应用启动时确保存在至少一个管理员(表空则按 app.yml imutil.admin 初始化)
*/
void ensureDefaultAdmin();
/**
* 修改当前登录用户密码
* <p>
* 校验原密码(PBKDF2 verify)+ 新密码合规(≥ 8 位且与原密码不同)后写新 hash。
*
* @param userId 用户ID
* @param oldPassword 原密码(明文)
* @param newPassword 新密码(明文,需 ≥ 8 位且与原密码不同)
* @throws com.imutil.common.BizException 原密码错误 / 新密码不合规 / 用户不存在
*/
void changePassword(Long userId, String oldPassword, String newPassword);
}