mirror of
https://github.com/continew-org/continew-starter.git
synced 2025-09-09 08:57:17 +08:00
refactor: 解决 Sonar 问题,替换部分过期 API
This commit is contained in:
@@ -37,9 +37,9 @@ public enum Algorithm {
|
||||
DES(DesEncryptor.class),
|
||||
|
||||
/**
|
||||
* PBEWithMD5AndDES
|
||||
* PBE With MD5 And DES
|
||||
*/
|
||||
PBEWithMD5AndDES(PbeWithMd5AndDesEncryptor.class),
|
||||
PBE_WITH_MD5_AND_DES(PbeWithMd5AndDesEncryptor.class),
|
||||
|
||||
/**
|
||||
* RSA
|
||||
|
@@ -16,10 +16,10 @@
|
||||
|
||||
package top.continew.starter.security.limiter.annotation;
|
||||
|
||||
import org.redisson.api.RateIntervalUnit;
|
||||
import top.continew.starter.security.limiter.enums.LimitType;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 限流注解
|
||||
@@ -60,7 +60,7 @@ public @interface RateLimiter {
|
||||
/**
|
||||
* 速率间隔时间单位(默认:毫秒)
|
||||
*/
|
||||
RateIntervalUnit unit() default RateIntervalUnit.MILLISECONDS;
|
||||
TimeUnit unit() default TimeUnit.MILLISECONDS;
|
||||
|
||||
/**
|
||||
* 提示信息
|
||||
|
@@ -39,6 +39,7 @@ import top.continew.starter.security.limiter.exception.RateLimiterException;
|
||||
import top.continew.starter.web.util.SpringWebUtils;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.time.Duration;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@@ -129,12 +130,11 @@ public class RateLimiterAspect {
|
||||
// 限流器配置
|
||||
RateType rateType = rateLimiter.type() == LimitType.CLUSTER ? RateType.PER_CLIENT : RateType.OVERALL;
|
||||
int rate = rateLimiter.rate();
|
||||
int rateInterval = rateLimiter.interval();
|
||||
RateIntervalUnit rateIntervalUnit = rateLimiter.unit();
|
||||
Duration rateInterval = Duration.ofMillis(rateLimiter.unit().toMillis(rateLimiter.interval()));
|
||||
// 判断是否需要更新限流器
|
||||
if (this.isConfigurationUpdateNeeded(rRateLimiter, rateType, rate, rateInterval, rateIntervalUnit)) {
|
||||
if (this.isConfigurationUpdateNeeded(rRateLimiter, rateType, rate, rateInterval)) {
|
||||
// 更新限流器
|
||||
rRateLimiter.setRate(rateType, rate, rateInterval, rateIntervalUnit);
|
||||
rRateLimiter.setRate(rateType, rate, rateInterval);
|
||||
}
|
||||
// 尝试获取令牌
|
||||
return !rRateLimiter.tryAcquire();
|
||||
@@ -181,20 +181,18 @@ public class RateLimiterAspect {
|
||||
/**
|
||||
* 判断是否需要更新限流器配置
|
||||
*
|
||||
* @param rRateLimiter 限流器
|
||||
* @param rateType 限流类型(OVERALL:全局限流;PER_CLIENT:单机限流)
|
||||
* @param rate 速率(指定时间间隔产生的令牌数)
|
||||
* @param rateInterval 速率间隔
|
||||
* @param rateIntervalUnit 时间单位
|
||||
* @param rRateLimiter 限流器
|
||||
* @param rateType 限流类型(OVERALL:全局限流;PER_CLIENT:单机限流)
|
||||
* @param rate 速率(指定时间间隔产生的令牌数)
|
||||
* @param rateInterval 速率间隔
|
||||
* @return 是否需要更新配置
|
||||
*/
|
||||
private boolean isConfigurationUpdateNeeded(RRateLimiter rRateLimiter,
|
||||
RateType rateType,
|
||||
long rate,
|
||||
long rateInterval,
|
||||
RateIntervalUnit rateIntervalUnit) {
|
||||
Duration rateInterval) {
|
||||
RateLimiterConfig config = rRateLimiter.getConfig();
|
||||
return !Objects.equals(config.getRateType(), rateType) || !Objects.equals(config.getRate(), rate) || !Objects
|
||||
.equals(config.getRateInterval(), rateIntervalUnit.toMillis(rateInterval));
|
||||
.equals(config.getRateInterval(), rateInterval.toMillis());
|
||||
}
|
||||
}
|
||||
|
@@ -34,7 +34,7 @@ public enum MaskType implements IMaskStrategy {
|
||||
CUSTOM {
|
||||
@Override
|
||||
public String mask(String str, char character, int left, int right) {
|
||||
return CharSequenceUtil.replace(str, left, str.length() - right, character);
|
||||
return CharSequenceUtil.replaceByCodePoint(str, left, str.length() - right, character);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -45,7 +45,7 @@ public enum MaskType implements IMaskStrategy {
|
||||
MOBILE_PHONE {
|
||||
@Override
|
||||
public String mask(String str, char character, int left, int right) {
|
||||
return CharSequenceUtil.replace(str, 3, str.length() - 4, character);
|
||||
return CharSequenceUtil.replaceByCodePoint(str, 3, str.length() - 4, character);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -58,7 +58,7 @@ public enum MaskType implements IMaskStrategy {
|
||||
FIXED_PHONE {
|
||||
@Override
|
||||
public String mask(String str, char character, int left, int right) {
|
||||
return CharSequenceUtil.replace(str, 4, str.length() - 2, character);
|
||||
return CharSequenceUtil.replaceByCodePoint(str, 4, str.length() - 2, character);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -76,7 +76,7 @@ public enum MaskType implements IMaskStrategy {
|
||||
if (index <= 1) {
|
||||
return str;
|
||||
}
|
||||
return CharSequenceUtil.replace(str, 1, index, character);
|
||||
return CharSequenceUtil.replaceByCodePoint(str, 1, index, character);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -89,7 +89,7 @@ public enum MaskType implements IMaskStrategy {
|
||||
ID_CARD {
|
||||
@Override
|
||||
public String mask(String str, char character, int left, int right) {
|
||||
return CharSequenceUtil.replace(str, 1, str.length() - 2, character);
|
||||
return CharSequenceUtil.replaceByCodePoint(str, 1, str.length() - 2, character);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -140,11 +140,11 @@ public enum MaskType implements IMaskStrategy {
|
||||
// 普通车牌
|
||||
int length = str.length();
|
||||
if (length == 7) {
|
||||
return CharSequenceUtil.replace(str, 3, 6, character);
|
||||
return CharSequenceUtil.replaceByCodePoint(str, 3, 6, character);
|
||||
}
|
||||
// 新能源车牌
|
||||
if (length == 8) {
|
||||
return CharSequenceUtil.replace(str, 3, 7, character);
|
||||
return CharSequenceUtil.replaceByCodePoint(str, 3, 7, character);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
@@ -159,7 +159,7 @@ public enum MaskType implements IMaskStrategy {
|
||||
CHINESE_NAME {
|
||||
@Override
|
||||
public String mask(String str, char character, int left, int right) {
|
||||
return CharSequenceUtil.replace(str, 1, str.length(), character);
|
||||
return CharSequenceUtil.replaceByCodePoint(str, 1, str.length(), character);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -186,7 +186,7 @@ public enum MaskType implements IMaskStrategy {
|
||||
@Override
|
||||
public String mask(String str, char character, int left, int right) {
|
||||
int length = str.length();
|
||||
return CharSequenceUtil.replace(str, length - 8, length, character);
|
||||
return CharSequenceUtil.replaceByCodePoint(str, length - 8, length, character);
|
||||
}
|
||||
},
|
||||
|
||||
|
Reference in New Issue
Block a user