2.9 KiB
2.9 KiB
55 Admin:用户密码最小长度调整为 6 个字符
- 类型:需求
- 父级大工单:#14
- 所属 MVP / 版本:#15 Admin 四模块可用闭环
- 状态:已完成
- 日期:2026-08-09
- Gitea 工单:#55
背景与目标
Admin 原来要求密码至少 8 个字符。用户要求创建用户时改为至少 6 个字符。 首次管理员初始化、创建采购员和重置密码共用同一套密码策略,因此本任务把三个入口 统一为至少 6 个字符,避免出现前后端或不同页面规则不一致。
最终方案
- 服务端最小密码长度常量从 8 改为 6,仍按 Unicode 字符数判断。
- 首次管理员、创建采购员、重置密码的密码和确认密码字段全部改为
minlength="6"。 - 初始化、创建和重置表单都显示“至少 6 个字符”的辅助文字;服务端校验失败 明确提示至少需要 6 个字符。
- 最大 72 个字节、确认密码、bcrypt 哈希、错误信息防账号枚举、重置后撤销 Session 等既有安全规则不变。
- 增加 5 个字符拒绝、6 个字符初始化/创建/重置成功以及模板属性和文案测试。
实际实现与建单方案一致,没有数据库或 Client API 变更。
改了哪些
admin/service/auth.go:最小密码长度改为 6。admin/templates/auth/setup.html:初始化管理员表单规则和提示同步为 6。admin/templates/user/list.html:创建与重置密码表单规则和提示同步为 6。admin/service/auth_test.go、admin/service/user_test.go:覆盖服务端边界值。admin/auth_integration_test.go、admin/user_integration_test.go:覆盖模板属性与文案。docs/admin/01-requirements.md、05-ui-specification.md、06-quality-security.md:记录统一密码规则和测试要求。
验收结果
| 验收标准 | 结果 |
|---|---|
| 5 个字符被拒绝并提示至少 6 个字符 | 通过 |
| 6 个字符可初始化管理员 | 通过 |
| 6 个字符可创建采购员和重置密码 | 通过 |
三类表单密码与确认密码均为 minlength="6" |
通过 |
| 三类表单显示至少 6 个字符的辅助文字 | 通过 |
| 最大长度、确认密码、bcrypt 和 Session 撤销保持不变 | 通过 |
| 页面和日志不回显密码 | 通过 |
| 格式、静态检查和全量测试通过 | 通过 |
| Go 1.23.0 构建和无缓存测试通过 | 通过 |
测试
- 执行的命令:
cd admin; gofmt -w .; go vet ./...; go test ./... - 执行的命令:
$env:GOTOOLCHAIN="go1.23.0"; go build ./...; go test ./... -count=1; Remove-Item Env:GOTOOLCHAIN - 结果:
go version go1.23.0 windows/amd64;构建成功,所有测试通过。 - 没验证到的部分:未单独进行人工浏览器验收;真实路由和模板渲染已由集成测试覆盖。
相关提交
2cce9e3fix: 用户密码最小长度调整为六位 (#55)