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

6.0 KiB
Raw Blame History

RuoYi 授权码模块集成指南

一、模块说明

本授权码模块已完成开发,包含以下文件:

ruoyi-license/                          # 授权模块(独立模块)
├── src/main/java/com/ruoyi/license/
│   ├── config/
│   │   └── LicenseConfig.java         # 拦截器配置
│   ├── domain/
│   │   └── SysLicense.java            # 授权实体
│   ├── interceptor/
│   │   └── LicenseInterceptor.java    # 授权拦截器
│   ├── mapper/
│   │   └── SysLicenseMapper.java      # 数据访问接口
│   ├── service/
│   │   ├── ISysLicenseService.java    # 服务接口
│   │   └── impl/
│   │       └── SysLicenseServiceImpl.java  # 服务实现
│   ├── task/
│   │   └── LicenseCheckTask.java      # 定时检查任务
│   └── util/
│       ├── LicenseUtils.java          # 授权工具类
│       └── LicenseGenerator.java      # 授权码生成器
├── src/main/resources/mapper/license/
│   └── SysLicenseMapper.xml           # MyBatis映射
├── pom.xml                            # 模块依赖
└── README.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                              # 添加license模块
- ruoyi-admin/pom.xml                  # 添加license依赖
- login.html                           # 添加激活入口
- login.js                             # 添加激活功能

二、部署步骤

1. 执行数据库脚本

# 在MySQL中执行
mysql -u root -p your_database < sql/sys_license.sql

或手动执行 sql/sys_license.sql 中的SQL语句。

2. 启用定时任务

在启动类上添加 @EnableScheduling 注解:

@SpringBootApplication
@EnableScheduling  // 添加此注解
public class RuoYiApplication {
    public static void main(String[] args) {
        SpringApplication.run(RuoYiApplication.class, args);
    }
}

3. 编译项目

cd d:\fortucky\project\RuoYi-master
mvn clean install

4. 生成授权码

方式一:使用独立工具生成

cd ruoyi-license/src/main/java
javac com/ruoyi/license/util/LicenseUtils.java
javac com/ruoyi/license/util/LicenseGenerator.java
java com.ruoyi.license.util.LicenseGenerator

方式二:启动系统后在界面生成

  • 登录系统
  • 进入"系统管理 -> 授权管理"
  • 点击"生成授权码"按钮

5. 激活授权码

首次激活(登录页):

  1. 访问登录页
  2. 点击"激活授权码"链接
  3. 输入生成的授权码
  4. 提交激活

系统内激活:

  1. 登录系统(需要先有有效授权)
  2. 进入"系统管理 -> 授权管理"
  3. 点击"激活授权码"
  4. 输入新的授权码

三、功能验证

1. 验证授权拦截

  • 未激活授权码时,访问任何页面应跳转到登录页并提示"授权已过期"
  • 激活授权码后,可正常访问系统

2. 验证定时检查

  • 修改数据库中授权码的 expire_time 为过去时间
  • 等待5分钟(或重启系统)
  • 在线用户应被强制退出
  • 尝试登录应提示授权过期

3. 验证授权管理

  • 访问"系统管理 -> 授权管理"
  • 查看授权列表
  • 生成新授权码
  • 激活授权码
  • 删除过期授权

四、复用到其他项目

方式一:Maven依赖(推荐)

  1. 将 ruoyi-license 模块复制到目标项目
  2. 在父pom.xml添加模块声明
  3. 在需要的模块添加依赖
  4. 执行数据库脚本
  5. 复制Controller和前端页面

方式二:JAR包依赖

  1. 打包license模块:
cd ruoyi-license
mvn clean package
  1. 安装到本地仓库:
mvn install:install-file -Dfile=target/ruoyi-license-4.8.2.jar \
  -DgroupId=com.ruoyi -DartifactId=ruoyi-license \
  -Dversion=4.8.2 -Dpackaging=jar
  1. 在目标项目添加依赖:
<dependency>
    <groupId>com.ruoyi</groupId>
    <artifactId>ruoyi-license</artifactId>
    <version>4.8.2</version>
</dependency>

五、配置说明

1. 修改密钥(重要)

生产环境必须修改默认密钥:

// LicenseUtils.java
private static final String SECRET_KEY = "YourCustomKey123"; // 改为16位自定义密钥

2. 调整检查频率

// LicenseCheckTask.java
@Scheduled(cron = "0 */5 * * * ?")  // 每5分钟,可根据需要调整

3. 自定义拦截路径

// LicenseConfig.java
.excludePathPatterns(
    "/login",
    "/your-path/**"  // 添加需要排除的路径
)

六、注意事项

  1. 首次部署:必须先生成并激活授权码,否则无法登录
  2. 时间同步:确保服务器时间准确,避免授权判断错误
  3. 密钥安全:生产环境务必修改默认密钥
  4. 数据备份:定期备份 sys_license 表数据
  5. 权限控制:授权管理菜单仅授予超级管理员

七、故障排查

问题1:无法激活授权码

  • 检查授权码格式是否正确
  • 检查授权码是否已过期
  • 查看后台日志错误信息

问题2:授权有效但仍被拦截

  • 检查数据库中授权状态是否为"1"
  • 检查 expire_time 是否大于当前时间
  • 重启应用服务器

问题3:定时任务不执行

  • 确认启动类添加了 @EnableScheduling
  • 检查日志是否有定时任务执行记录

问题4:在线用户未被踢出

  • 检查 SessionDAO 是否正确注入
  • 查看定时任务是否正常执行
  • 检查Shiro配置是否正确

八、技术支持

如遇到问题,请提供以下信息:

  1. 错误日志
  2. 数据库授权记录
  3. 系统环境信息
  4. 操作步骤

联系方式:参考RuoYi官方文档