feat: 增加ip限流控制

使用系统配置增加ip限流控制
This commit is contained in:
Theo
2024-08-10 15:01:04 +08:00
parent b5ec1d7579
commit faa5f1a9a8
9 changed files with 136 additions and 6 deletions

View File

@@ -3,6 +3,7 @@ package com.youlai.system.plugin.norepeat.aspect;
import cn.hutool.core.util.StrUtil;
import cn.hutool.jwt.JWTUtil;
import cn.hutool.jwt.RegisteredPayload;
import com.youlai.system.common.constant.RedisKeyConstants;
import com.youlai.system.common.constant.SecurityConstants;
import com.youlai.system.exception.BusinessException;
import com.youlai.system.common.result.ResultCode;
@@ -36,7 +37,6 @@ import java.util.concurrent.TimeUnit;
public class DuplicateSubmitAspect {
private final RedissonClient redissonClient;
private static final String RESUBMIT_LOCK_PREFIX = "LOCK:RESUBMIT:";
/**
* 防重复提交切点
@@ -74,7 +74,7 @@ public class DuplicateSubmitAspect {
token = token.substring(SecurityConstants.JWT_TOKEN_PREFIX.length());
// 从 JWT Token 中获取 jti
String jti = (String) JWTUtil.parseToken(token).getPayload(RegisteredPayload.JWT_ID);
resubmitLockKey = RESUBMIT_LOCK_PREFIX + jti + ":" + request.getMethod() + "-" + request.getRequestURI();
resubmitLockKey = RedisKeyConstants.RESUBMIT_LOCK_PREFIX + jti + ":" + request.getMethod() + "-" + request.getRequestURI();
}
return resubmitLockKey;
}