7b047e2f119c7f4ff1270a8d4d122c301bb3cf9b
P0(高优先级): - P0-1: 确认数据库复合索引已存在(GORM tag),composite_index_test 验证通过 - P0-2: 连接池调优 MaxIdleConns 5→10, ConnMaxLifetime 30min→5min - P0-3: Redis 智能探测(ProbeRedis),无 Redis 自动降级到纯内存模式 P1(中优先级): - P1-1: GZIP 压缩中间件(compress/gzip 标准库,零新依赖) - P1-2: 权限缓存 TTL 30min→5min - P1-3: Argon2id 启动自适应校准(CalibrateArgon2id) 历史优化(含本次提交): - L1Cache O(n)→O(1) LRU 重构 - Auth 中间件 DB 查询合并 + 5s L1 缓存 - Logger 异步化(4096 缓冲通道) 验证: go build/vet/test 41/41 PASS, govulncheck 无漏洞
User Management System (UMS)
企业级用户管理系统,支持 RBAC 角色权限管理、多因素认证、设备信任和安全审计。
快速开始
前置依赖
- Go 1.21+
- Node.js 18+
- SQLite(默认,无需安装)
启动后端
# 复制环境配置
cp .env.example .env
# 编辑 .env 填入必要配置(JWT_SECRET, DEFAULT_ADMIN_PASSWORD 等)
# 启动服务
go run ./cmd/server
服务启动后访问 http://localhost:8080/api/v1/auth/bootstrap 初始化管理员账号。
启动前端
cd frontend/admin
npm install
npm run dev
项目结构
.
├── cmd/server/ # 后端入口
├── internal/ # 后端代码
│ ├── api/handler/ # HTTP 处理器
│ ├── api/middleware/ # 中间件(认证、权限、限流)
│ ├── auth/ # 认证服务(JWT/SSO)
│ ├── repository/ # 数据访问层
│ ├── service/ # 业务逻辑层
│ └── domain/ # 领域模型
├── frontend/admin/ # 管理后台前端
├── configs/ # 配置文件
├── docs/ # 详细文档
└── data/ # SQLite 数据库目录
核心功能
| 功能 | 说明 |
|---|---|
| 用户管理 | 注册、登录、CRUD、批量操作 |
| RBAC | 角色继承、权限细粒度控制 |
| TOTP | Google Authenticator 二次验证 |
| 设备信任 | 信任设备免二次验证 |
| 登录日志 | 完整操作审计 |
| Webhook | 事件通知(user.created/deleted 等) |
| SSO | CAS 协议支持 |
安全特性
| 安全修复 | 状态 |
|---|---|
| LIKE 查询 SQL 注入防护 | ✅ 已修复 |
| 登录失败计数器原子操作 | ✅ 已修复 |
| Refresh Token 黑名单 fail-closed | ✅ 已修复 |
| 验证码 Replay 防护 | ✅ 已修复 |
| CORS 危险配置检测 | ✅ 已修复 |
| UpdateUser IDOR 授权检查 | ✅ 已修复 |
| Login TOTP 设备信任门禁 | ✅ 已修复 |
| 游标分页排序一致性 | ✅ 已修复 |
| 错误信息泄露防护 | ✅ 已修复 |
| OAuth context 正确传播 | ✅ 已修复 |
| 密码修改后 Token 失效(PCE) | ✅ 已修复 |
环境变量
关键配置项(详见 .env.example):
| 变量 | 说明 | 必填 |
|---|---|---|
JWT_SECRET |
JWT 签名密钥 | 是 |
DEFAULT_ADMIN_EMAIL |
初始管理员邮箱 | 是 |
DEFAULT_ADMIN_PASSWORD |
初始管理员密码 | 是 |
SMTP_* |
邮件服务配置 | 是(邮件功能) |
SMS_* |
短信服务配置 | 否 |
API 文档
完整 API 规范:docs/API.md
认证流程:
1. POST /api/v1/auth/register # 注册用户
2. POST /api/v1/auth/login # 登录获取 Token
3. POST /api/v1/auth/refresh # 刷新 Token
开发命令
# 构建
go build ./cmd/server
# 测试(跳过大规模性能测试)
go test ./internal/... -skip TestScale -count=1
# 前端构建
cd frontend/admin && npm run build
# 前端测试
cd frontend/admin && npm test
# 前端 lint
cd frontend/admin && npm run lint
# Docker 构建
docker build -t ums .
部署
- 开发部署:
docs/DEPLOYMENT.md - 生产部署:
DEPLOY_GUIDE.md - 运行手册:
docs/guides/目录下的 7 个 Runbook
测试状态
| 测试类型 | 状态 |
|---|---|
| Go 构建 | ✅ 通过 |
| Go vet | ✅ 通过 |
| Go 测试 | ✅ 通过(37个包) |
| 前端 lint | ✅ 通过 |
| 前端测试 | ✅ 通过(518个) |
| 集成测试 | ✅ 通过 |
| E2E 测试 | ✅ 通过 |
项目状态
完整项目状态:docs/status/REAL_PROJECT_STATUS.md
2026-04-18 最新状态: 所有 P0/P1/P2 安全和质量修复已全部完成并验证通过。
Description
Languages
Go
71.2%
TypeScript
20%
PowerShell
3.2%
JavaScript
2.7%
Shell
1.5%
Other
1.3%