Files
FT546MWS/ruoyi-license/DEPLOYMENT_CHECKLIST.md
2026-07-24 08:51:42 +08:00

251 lines
5.4 KiB
Markdown

# 授权码模块部署检查清单
## 📋 部署前检查
### 1. 文件完整性检查
- [ ] ruoyi-license 模块目录存在
- [ ] pom.xml 已添加 license 模块
- [ ] ruoyi-admin/pom.xml 已添加 license 依赖
- [ ] SysLicenseController.java 已创建
- [ ] license.html 和 active.html 已创建
- [ ] login.html 和 login.js 已修改
- [ ] sys_license.sql 脚本已准备
### 2. 数据库准备
- [ ] 创建 sys_license 表
- [ ] 插入授权管理菜单数据
- [ ] 验证表结构正确
- [ ] 检查菜单权限配置
### 3. 代码配置
- [ ] 修改 LicenseUtils.java 中的密钥(生产环境必须)
- [ ] 确认拦截器路径配置正确
- [ ] 确认定时任务cron表达式
- [ ] 启动类添加 @EnableScheduling 注解
## 🔧 部署步骤
### 步骤1: 执行数据库脚本
```bash
mysql -u root -p your_database < sql/sys_license.sql
```
- [ ] 执行成功
- [ ] 表创建成功
- [ ] 菜单数据插入成功
### 步骤2: 修改启动类
```java
@SpringBootApplication
@EnableScheduling // 添加此注解
public class RuoYiApplication {
// ...
}
```
- [ ] 注解已添加
### 步骤3: 编译项目
```bash
mvn clean install
```
- [ ] 编译成功
- [ ] 无错误信息
- [ ] JAR包生成
### 步骤4: 启动应用
```bash
java -jar ruoyi-admin.jar
```
- [ ] 启动成功
- [ ] 无异常日志
- [ ] 端口正常监听
### 步骤5: 生成授权码
**方式A: 使用独立工具**
```bash
java com.ruoyi.license.util.LicenseGenerator
```
- [ ] 工具运行成功
- [ ] 授权码生成成功
- [ ] 授权码已保存
**方式B: 使用系统界面**
- [ ] 登录系统
- [ ] 访问授权管理
- [ ] 点击生成授权码
- [ ] 输入天数并生成
### 步骤6: 激活授权码
- [ ] 访问登录页
- [ ] 点击"激活授权码"
- [ ] 输入授权码
- [ ] 激活成功
## ✅ 功能测试
### 测试1: 授权码生成
- [ ] 系统界面生成授权码成功
- [ ] 独立工具生成授权码成功
- [ ] 授权码格式正确
### 测试2: 授权码激活
- [ ] 登录页激活成功
- [ ] 系统内激活成功
- [ ] 数据库记录正确
### 测试3: 授权验证
- [ ] 有效授权可正常登录
- [ ] 无授权无法登录
- [ ] 过期授权无法登录
### 测试4: 授权拦截
- [ ] 未授权访问被拦截
- [ ] 有效授权可正常访问
- [ ] 静态资源不被拦截
### 测试5: 定时检查
- [ ] 定时任务正常执行
- [ ] 授权过期自动更新状态
- [ ] 在线用户被踢出
### 测试6: 授权管理
- [ ] 授权列表查询正常
- [ ] 授权信息显示正确
- [ ] 授权删除功能正常
## 🔍 问题排查
### 问题1: 编译失败
**检查项:**
- [ ] Maven依赖是否正确
- [ ] JDK版本是否匹配
- [ ] pom.xml配置是否正确
**解决方案:**
```bash
mvn clean
mvn dependency:resolve
mvn install
```
### 问题2: 启动失败
**检查项:**
- [ ] 数据库连接是否正常
- [ ] 端口是否被占用
- [ ] 配置文件是否正确
**解决方案:**
- 检查 application.yml 配置
- 查看启动日志错误信息
- 确认数据库表已创建
### 问题3: 无法激活授权码
**检查项:**
- [ ] 授权码格式是否正确
- [ ] 授权码是否已过期
- [ ] 密钥是否一致
**解决方案:**
- 重新生成授权码
- 检查 LicenseUtils 密钥配置
- 查看后台错误日志
### 问题4: 授权验证不生效
**检查项:**
- [ ] 拦截器是否注册
- [ ] 数据库授权记录是否正确
- [ ] 定时任务是否执行
**解决方案:**
- 检查 LicenseConfig 配置
- 验证数据库 status 字段
- 确认 @EnableScheduling 已添加
### 问题5: 在线用户未被踢出
**检查项:**
- [ ] SessionDAO 是否注入
- [ ] 定时任务是否执行
- [ ] Shiro配置是否正确
**解决方案:**
- 检查 LicenseCheckTask 日志
- 验证 SessionDAO bean
- 重启应用服务器
## 📊 监控指标
### 运行时监控
- [ ] 授权状态正常
- [ ] 定时任务执行正常
- [ ] 无异常日志
- [ ] 内存使用正常
- [ ] CPU使用正常
### 业务监控
- [ ] 授权激活次数
- [ ] 授权过期提醒
- [ ] 用户登录成功率
- [ ] 授权拦截次数
## 🔐 安全检查
### 配置安全
- [ ] 生产环境已修改默认密钥
- [ ] 数据库密码已加密
- [ ] 授权码传输使用HTTPS
- [ ] 敏感日志已脱敏
### 权限安全
- [ ] 授权管理菜单仅管理员可见
- [ ] 授权激活操作有日志记录
- [ ] 授权码生成有权限控制
- [ ] 数据库访问有权限限制
### 数据安全
- [ ] 授权码加密存储
- [ ] 定期备份授权数据
- [ ] 授权日志完整保存
- [ ] 敏感信息不输出到日志
## 📝 上线清单
### 上线前
- [ ] 所有测试通过
- [ ] 代码已提交版本库
- [ ] 数据库脚本已准备
- [ ] 部署文档已编写
- [ ] 回滚方案已准备
### 上线中
- [ ] 备份现有数据
- [ ] 执行数据库脚本
- [ ] 部署新版本代码
- [ ] 生成初始授权码
- [ ] 激活授权码
### 上线后
- [ ] 验证功能正常
- [ ] 检查日志无异常
- [ ] 监控系统运行状态
- [ ] 通知相关人员
- [ ] 更新运维文档
## 📞 应急联系
### 技术支持
- 开发负责人: ___________
- 运维负责人: ___________
- 数据库管理员: ___________
### 应急预案
1. 授权失效 -> 立即激活新授权码
2. 系统无法登录 -> 检查授权状态
3. 数据丢失 -> 从备份恢复
4. 性能问题 -> 调整定时任务频率
---
**检查人**: ___________
**检查日期**: ___________
**部署环境**: [ ] 开发 [ ] 测试 [ ] 生产
**部署状态**: [ ] 成功 [ ] 失败 [ ] 部分成功