# 授权码模块部署检查清单 ## 📋 部署前检查 ### 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. 性能问题 -> 调整定时任务频率 --- **检查人**: ___________ **检查日期**: ___________ **部署环境**: [ ] 开发 [ ] 测试 [ ] 生产 **部署状态**: [ ] 成功 [ ] 失败 [ ] 部分成功