| 限定符和类型 | 可选元素和说明 |
|---|---|
String[] |
associatedPatterns
1.
|
BannedType |
bannedType
封禁角色时,是针对某个接口来说的封禁还是全局的封禁
API 针对接口
IP 全局封禁
|
RateLimit.CheckType[] |
checkType
检查类型,可以是ip或则用户id,或者同时检查
|
int |
maxRequests
在规定的时间窗口内的最大请求数量,超出范围则拉入黑名单(禁止对该接口继续请求)
|
String |
minInterval
最小请求间隔,小于等于0时不对间隔做限制
|
String[] |
punishmentTime
被禁止后在规定时间后释放,默认 [5分钟,10分钟,30分钟,1小时]。
|
String |
window
规定时间段内(默认1秒) 请求数量大于最大数量
maxRequests(),则将其禁止。 |
public abstract String window
maxRequests(),则将其禁止。
禁止时间punishmentTime()默认1h
public abstract int maxRequests
public abstract String[] punishmentTime
在解封之后,若在一个窗口的时间周期内仍然出发封禁机制,那么惩罚等级(0是正常)会增加(依次往后+1),时间按照所给的依次往后,直到最后。
如:"1h","2h" 当在第一次触发封禁机制时,会禁止1h
当解封之后的一个window时间内,又触发封禁机制。那么会封禁2h。再此触发时,仍然还是2h。
当解封后,若过了window窗口时间,没有再触发,惩罚等级会归零。
public abstract String minInterval
public abstract BannedType bannedType
API 针对接口 IP 全局封禁
public abstract RateLimit.CheckType[] checkType
public abstract String[] associatedPatterns
2. 如果需要选择模式,则加上前缀可多个,用空格隔开,方法类型 + 空格
3. 当不加时默认为GET,全加可以用*代替
例子:
* /api/login ---> GET POST ... /api/login
/api/log ---> GET /api/log
POST /api/login
POST GET /api/login
DELETE /api/delete
GET /api/* ---> /api下的全部封禁
Copyright © 2022. All rights reserved.