- 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>
38 lines
1.1 KiB
Java
38 lines
1.1 KiB
Java
package com.imutil.service;
|
|
|
|
import com.imutil.entity.AdminUser;
|
|
|
|
/**
|
|
* 管理后台用户服务
|
|
* <p>
|
|
* 登录校验(PBKDF2)+ 首次启动默认管理员初始化。
|
|
*
|
|
* @author imutil
|
|
*/
|
|
public interface AdminUserService {
|
|
|
|
/**
|
|
* 登录校验
|
|
*
|
|
* @return 凭证正确且账号启用返回 AdminUser,否则 null
|
|
*/
|
|
AdminUser login(String username, String password);
|
|
|
|
/**
|
|
* 应用启动时确保存在至少一个管理员(表空则按 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);
|
|
}
|