Files
FT541-WMS/ruoyi-license/INTEGRATION.md
2026-04-10 10:23:34 +08:00

232 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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. 执行数据库脚本
```bash
# 在MySQL中执行
mysql -u root -p your_database < sql/sys_license.sql
```
或手动执行 `sql/sys_license.sql` 中的SQL语句。
### 2. 启用定时任务
在启动类上添加 `@EnableScheduling` 注解:
```java
@SpringBootApplication
@EnableScheduling // 添加此注解
public class RuoYiApplication {
public static void main(String[] args) {
SpringApplication.run(RuoYiApplication.class, args);
}
}
```
### 3. 编译项目
```bash
cd d:\fortucky\project\RuoYi-master
mvn clean install
```
### 4. 生成授权码
**方式一:使用独立工具生成**
```bash
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模块:
```bash
cd ruoyi-license
mvn clean package
```
2. 安装到本地仓库:
```bash
mvn install:install-file -Dfile=target/ruoyi-license-4.8.2.jar \
-DgroupId=com.ruoyi -DartifactId=ruoyi-license \
-Dversion=4.8.2 -Dpackaging=jar
```
3. 在目标项目添加依赖:
```xml
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-license</artifactId>
<version>4.8.2</version>
</dependency>
```
## 五、配置说明
### 1. 修改密钥(重要)
生产环境必须修改默认密钥:
```java
// LicenseUtils.java
private static final String SECRET_KEY = "YourCustomKey123"; // 改为16位自定义密钥
```
### 2. 调整检查频率
```java
// LicenseCheckTask.java
@Scheduled(cron = "0 */5 * * * ?") // 每5分钟,可根据需要调整
```
### 3. 自定义拦截路径
```java
// 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官方文档