# 技术栈与组件关系

---
DDS-Section: 2. 系统架构 - 2.4-2.6
DDS-Lines: L151-L171
---

## 技术栈

| 技术 | 用途 | 配置 |
|:---|:---|:---|
| Gin | HTTP 路由 | - |
| GORM | ORM | 多库连接 |
| JWT | 访问令牌 | HS256, 4h 有效期 |
| RSA-OAEP | 密码加密 | 2048 位，30 天轮换 |
| bcrypt | 密码存储 | 默认成本 |

## 路由分层

| 路径前缀 | 中间件 | 说明 |
|:---|:---|:---|
| `/api/auth/*` | 无 | 公共接口：RSA公钥、登录、注册 |
| `/api/users` | AuthMiddleware | 用户管理（部分需 RequireAdmin） |
| `/api/user` | AuthMiddleware | 个人资料 |
| `/api/permissions` | AuthMiddleware | 权限管理（部分需 RequireAdmin） |

## 中间件职责

| 中间件 | 职责 |
|:---|:---|
| AuthMiddleware | 解析 Bearer JWT，校验签名/过期/用户状态，注入用户上下文 |
| RequireAdmin | 判定角色包含 `admin`（superadmin/admin） |

## 组件关系

| 层 | 组件 | 职责 |
|:---|:---|:---|
| Handler | auth_handler, user_handler, permission_handler | HTTP 路由处理 |
| Service | AuthService, RSAService, UserService, *PermissionService | 业务逻辑 |
| DAO | UserDao, RSAKeypairDao, *PermissionDao, *AclDao | 数据访问 |
| Pkg | permission.PermissionChecker | 对外暴露权限检查接口 |
