|
|
# 数字人民币教学仿真后端
|
|
|
|
|
|
开发规范与模块目录约定见 [开发规范](docs/DEVELOPMENT_GUIDE.md)。
|
|
|
|
|
|
## 运行环境
|
|
|
|
|
|
- JDK 8(已按 Temurin 8 验证)
|
|
|
- Spring Boot 2.7.18、Spring Security 5.7、MyBatis-Plus 3.5.17、Knife4j 4.4.0
|
|
|
- MySQL 8
|
|
|
|
|
|
## 登录方式
|
|
|
|
|
|
- 兼容综合实训平台登录:`POST /api/user/login`。
|
|
|
- 账号密码登录参数:`username`、`passwordEncode`。
|
|
|
- Token 单点登录参数:`TOKEN`。接口解析智云 HS256 Token,同步本地用户并直接返回本系统访问 Token。
|
|
|
- 原有主平台跳转登录:`GET /api/v1/auth/sso?token=...`,验证成功后携带本系统 Token 跳转前端回调地址。
|
|
|
- 本地账号密码:`POST /api/v1/auth/login` 请求体为
|
|
|
`{"studentId":"tzs001","password":"123qwe"}`,按 `sys_user.student_id`
|
|
|
查询并校验本系统保存的 BCrypt 密码哈希。旧字段 `username` 暂时作为兼容别名。
|
|
|
|
|
|
Token 单点登录中的平台 `userId` 保存为 `sys_user.zy_user_id`;本地
|
|
|
`sys_user.user_id` 始终使用 UUID 主键。本系统只接受管理员、教师和学生角色。
|
|
|
|
|
|
## 必需配置
|
|
|
|
|
|
生产环境通过环境变量配置:
|
|
|
|
|
|
| 变量 | 说明 |
|
|
|
| --- | --- |
|
|
|
| `DIGITAL_RMB_DB_URL` | 本系统 MySQL JDBC 地址 |
|
|
|
| `DIGITAL_RMB_DB_USERNAME` | 本系统数据库账号 |
|
|
|
| `DIGITAL_RMB_DB_PASSWORD` | 本系统数据库密码 |
|
|
|
| `DIGITAL_RMB_JWT_SECRET` | 至少 64 字符的应用 JWT 密钥 |
|
|
|
| `DIGITAL_RMB_PLATFORM_DB_URL` | 主平台 MySQL JDBC 地址 |
|
|
|
| `DIGITAL_RMB_PLATFORM_DB_USERNAME` | 主平台只读数据库账号 |
|
|
|
| `DIGITAL_RMB_PLATFORM_DB_PASSWORD` | 主平台只读数据库密码 |
|
|
|
| `DIGITAL_RMB_CAS_LOGIN_URL` | 学校 CAS 登录地址 |
|
|
|
| `DIGITAL_RMB_CAS_VALIDATE_URL` | CAS `serviceValidate` 地址 |
|
|
|
| `DIGITAL_RMB_CAS_CALLBACK_URL` | 本系统固定 CAS 回调地址 |
|
|
|
| `DIGITAL_RMB_FRONTEND_CALLBACK_URL` | 前端接收一次性 code 的固定回调地址 |
|
|
|
|
|
|
主平台数据库账号必须仅授予 `SELECT` 权限。不要将主平台 Token 写入日志、数据库或前端最终 URL。
|
|
|
|
|
|
## 本地运行
|
|
|
|
|
|
```powershell
|
|
|
mvn spring-boot:run -Dspring-boot.run.profiles=local -Dspring-boot.run.arguments=--server.port=8081
|
|
|
```
|
|
|
|
|
|
本地 Swagger:<http://localhost:8081/doc.html>
|
|
|
|
|
|
测试环境会执行 `schema.sql`,创建或更新测试账号 `tzs001`。`dev` 配置的
|
|
|
`spring.sql.init.mode` 为 `never`,不会自动修改真实 MySQL;开发库必须已有
|
|
|
`sys_user` 记录,并且 `password` 必须保存 BCrypt 哈希,不能保存密码明文。
|