# 内置拦截器
系统默认的内置拦截器目前有三个,分别是日志记录拦截器
,License拦截器
,签名拦截器
。
拦截器的所有配置项位于system.filter
下。
# 日志记录拦截器
日志记录拦截器用于记录所有非Get请求,意味着可能造成数据变动的所有请求都会被记录到请求日志表(sys_log_access
)中。
相关配置
system:
filter:
httpTraceLog:
# true表示开启,false表示关闭
enable: true
# 开启相关日志
log: true
1
2
3
4
5
6
7
2
3
4
5
6
7
日志记录可在菜单系统维护 > 日志管理 > 请求日志中进行查看
。
# License拦截器
用于版权申明和限制使用方的使用边界。
提示
License的具体实现逻辑,后期会改版。
当前版本
相关配置
system:
filter:
license:
# true表示开启,false表示关闭
enable: true
# 开启相关日志
log: true
license:
# 用于license解密的密钥
secret: gxjgpt
licenceId: ecac2288-6c0c-4a44-92a9-9b0951438a1f
# license白名单
paths:
- /api/v1/system/logout
- /api/v1/system/login
- /api/v1/system/cas
- /api/v1/system/cas/**/token
- /api/v1/login/byPassword
- /api/v1/login/byVerifyCode
- /api/v1/license
- /api/v1/login/getImageVerifyCode
- /api/v1/sysMenus/tree
- /api/v1/login/byImageVerifyCode
- /api/v1/login/loginFromNbrc
- /api/v1/baseRegInfo/getRole
- /api/v1/system/userInfo
- /api/v1/sysUsers/admin/portrait
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
许可证生成
只需改动
软件英文名称
,软件中文名称
,有效月份
即可
如果是之前的许可证过期了,则需要将
licenceId
设置为之前的,继续进行生成。
public static void main(String[] args) {
//软件英文名称
String secretLocal = "gxjgpt";
//软件中文名称
String productName = "共享加工平台软件";
//随机生成licenseId
String licenceId = UUID.randomUUID().toString();
//许可证所属人
String licenceName = "浙江坤谷智能科技有限公司";
//许可证等级
String licenceLevel = "premrum";
//许可证类型
String licenceType = "offline";
//有效月份
int month = 3;
Map<String, Object> claims = new HashMap<>();
claims.put("productName", productName);
claims.put("licenceId", licenceId);
claims.put("licenceName", licenceName);
claims.put("licenceLevel", licenceLevel);
claims.put("licenceType", licenceType);
LocalDateTime date = LocalDateTime.now();
//当前时间戳
long nowDate = date.toInstant(ZoneOffset.of("+8")).toEpochMilli();
date = date.plusMonths(month);
//到期时间戳
long expiration = date.toInstant(ZoneOffset.of("+8")).toEpochMilli();
claims.put("expirationTime", expiration);
String jwt = JwtTokenUtils.createJwt(secretLocal, productName, claims, expiration - nowDate);
System.out.println("许可证相关信息已生成============>");
System.out.println("secret: " + secretLocal);
System.out.println("licenceId: " + licenceId);
System.out.println("许可证: " + jwt);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 签名拦截器
用于接口安全规范,防止请求参数篡改
,重放攻击
, 并校验时效性
。
目前knife4j不支持前端签名生成,所以建议在开发环境中,将其关闭。
system:
filter:
sign:
# true表示开启,false表示关闭
enable: true
# 开启相关日志
log: true
1
2
3
4
5
6
7
2
3
4
5
6
7