232 lines
6.0 KiB
Markdown
232 lines
6.0 KiB
Markdown
# 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官方文档
|