Files
FT546MWS/dosc/ruoyi-license/SUMMARY.md
1009473166@qq.com 0a021caba6 1
2026-07-31 10:16:48 +08:00

6.9 KiB
Raw Blame History

RuoYi 授权码模块 - 项目总结

📦 已完成的工作

1. 核心模块开发 ✅

ruoyi-license 独立模块

  • ✅ Maven模块配置 (pom.xml)
  • ✅ 授权实体类 (SysLicense.java)
  • ✅ 数据访问层 (SysLicenseMapper.java + XML)
  • ✅ 业务逻辑层 (ISysLicenseService.java + Impl)
  • ✅ 授权工具类 (LicenseUtils.java)
  • ✅ 授权拦截器 (LicenseInterceptor.java)
  • ✅ 拦截器配置 (LicenseConfig.java)
  • ✅ 定时检查任务 (LicenseCheckTask.java)
  • ✅ 授权码生成器 (LicenseGenerator.java)
  • ✅ 测试工具 (LicenseTest.java)

2. 控制器和前端 ✅

后端控制器

  • ✅ SysLicenseController.java (授权管理控制器)
    • 授权列表查询
    • 授权码激活
    • 授权码生成
    • 授权信息查看
    • 授权删除

前端页面

  • ✅ license.html (授权列表页)
  • ✅ active.html (激活页面)
  • ✅ login.html (添加激活入口)
  • ✅ login.js (添加激活功能)

3. 数据库脚本 ✅

  • ✅ sys_license.sql
    • 授权表结构
    • 菜单权限配置

4. 项目集成 ✅

  • ✅ 主pom.xml (添加license模块)
  • ✅ ruoyi-admin/pom.xml (添加license依赖)

5. 文档编写 ✅

  • ✅ README.md (使用说明)
  • ✅ INTEGRATION.md (集成指南)

🎯 功能特性

核心功能

  1. 授权码加密存储 - AES加密,安全可靠
  2. 登录验证 - 登录时自动验证授权有效性
  3. 拦截器保护 - 所有请求都经过授权验证
  4. 定时检查 - 每5分钟自动检查授权状态
  5. 自动踢出 - 授权过期自动踢出所有在线用户
  6. 管理界面 - 完整的授权管理功能
  7. 登录页激活 - 无需登录即可激活授权码
  8. 授权码生成 - 内置生成工具,支持自定义天数

技术亮点

  • 🔒 AES加密算法保护授权码
  • 🔄 Spring拦截器实现全局授权验证
  • ⏰ Spring定时任务自动检查授权
  • 🎨 完整的前后端交互界面
  • 📦 独立模块设计,方便复用
  • 🛠️ 提供测试工具和生成工具

📂 文件清单

ruoyi-license/
├── src/main/java/com/ruoyi/license/
│   ├── config/
│   │   └── LicenseConfig.java                 (拦截器配置)
│   ├── domain/
│   │   └── SysLicense.java                    (授权实体)
│   ├── interceptor/
│   │   └── LicenseInterceptor.java            (授权拦截器)
│   ├── mapper/
│   │   └── SysLicenseMapper.java              (Mapper接口)
│   ├── service/
│   │   ├── ISysLicenseService.java            (服务接口)
│   │   └── impl/
│   │       └── SysLicenseServiceImpl.java     (服务实现)
│   ├── task/
│   │   └── LicenseCheckTask.java              (定时任务)
│   └── util/
│       ├── LicenseUtils.java                  (工具类)
│       ├── LicenseGenerator.java              (生成器)
│       └── LicenseTest.java                   (测试工具)
├── src/main/resources/mapper/license/
│   └── SysLicenseMapper.xml                   (MyBatis映射)
├── pom.xml                                    (模块配置)
├── README.md                                  (使用说明)
└── INTEGRATION.md                             (集成指南)

sql/
└── sys_license.sql                            (数据库脚本)

ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/license/
└── SysLicenseController.java                  (控制器)

ruoyi-admin/src/main/resources/templates/system/license/
├── license.html                               (列表页)
└── active.html                                (激活页)

修改的文件:
├── pom.xml                                    (添加模块)
├── ruoyi-admin/pom.xml                        (添加依赖)
├── ruoyi-admin/src/main/resources/templates/login.html
└── ruoyi-admin/src/main/resources/static/ruoyi/login.js

🚀 快速开始

1. 执行数据库脚本

source sql/sys_license.sql;

2. 启用定时任务

在 RuoYiApplication.java 添加 @EnableScheduling

3. 编译项目

mvn clean install

4. 生成授权码

运行 LicenseGenerator.java 或在系统界面生成

5. 激活授权码

登录页点击"激活授权码"输入授权码

🔧 使用场景

场景1:软件交付

  • 开发完成后生成授权码
  • 交付给客户时提供授权码
  • 客户激活后可使用指定期限

场景2:试用版本

  • 生成30天试用授权码
  • 客户试用满意后购买正式授权
  • 激活正式授权码延长使用期限

场景3:订阅服务

  • 按年生成授权码
  • 到期前提醒客户续费
  • 续费后激活新授权码

场景4:多项目复用

  • 将license模块复制到其他项目
  • 修改密钥和配置
  • 快速实现授权功能

⚙️ 自定义配置

修改密钥(必须)

// LicenseUtils.java
private static final String SECRET_KEY = "YourKey16Chars!!";

调整检查频率

// LicenseCheckTask.java
@Scheduled(cron = "0 */10 * * * ?")  // 改为10分钟

自定义拦截路径

// LicenseConfig.java
.excludePathPatterns("/api/**", "/public/**")

📊 数据库表结构

sys_license (授权表)
├── license_id      (授权ID - 主键)
├── license_code    (授权码 - 加密存储)
├── start_time      (开始时间)
├── expire_time     (结束时间)
├── status          (状态: 0未激活 1已激活 2已过期)
├── active_time     (激活时间)
├── active_by       (激活人)
├── create_by       (创建者)
├── create_time     (创建时间)
├── update_by       (更新者)
├── update_time     (更新时间)
└── remark          (备注)

🔐 安全建议

  1. 生产环境必须修改默认密钥
  2. 授权码通过安全渠道传递
  3. 定期备份授权表数据
  4. 限制授权管理菜单权限
  5. 监控授权激活日志

📝 后续优化建议

  1. 硬件绑定 - 绑定服务器MAC地址或CPU序列号
  2. 在线验证 - 连接授权服务器在线验证
  3. 授权分级 - 不同授权码对应不同功能权限
  4. 自动续费 - 集成支付接口自动续费
  5. 授权统计 - 统计授权使用情况和到期提醒

✅ 测试清单

  • 数据库表创建成功
  • 菜单权限配置正确
  • 授权码生成功能正常
  • 授权码加密解密正确
  • 登录页激活功能正常
  • 系统内激活功能正常
  • 授权拦截器生效
  • 定时任务执行正常
  • 授权过期自动踢出
  • 授权列表查询正常

📞 技术支持

如有问题,请查看:

  1. README.md - 使用说明
  2. INTEGRATION.md - 集成指南
  3. RuoYi官方文档

开发完成时间: 2024 模块版本: 1.0.0 适用框架: RuoYi v4.8.2 技术栈: SpringBoot + MyBatis + Shiro + Thymeleaf