|
@@ -304,25 +304,24 @@ public class SysLoginService {
|
|
|
String errorKey = CacheConstants.PWD_ERR_CNT_KEY + username;
|
|
|
String loginFail = Constants.LOGIN_FAIL;
|
|
|
|
|
|
-
|
|
|
- Integer errorNumber = RedisUtils.getCacheObject(errorKey);
|
|
|
+
|
|
|
+ int errorNumber = ObjectUtil.defaultIfNull(RedisUtils.getCacheObject(errorKey), 0);
|
|
|
|
|
|
- if (ObjectUtil.isNotNull(errorNumber) && errorNumber.equals(maxRetryCount)) {
|
|
|
+ if (errorNumber >= maxRetryCount) {
|
|
|
recordLogininfor(username, loginFail, MessageUtils.message(loginType.getRetryLimitExceed(), maxRetryCount, lockTime));
|
|
|
throw new UserException(loginType.getRetryLimitExceed(), maxRetryCount, lockTime);
|
|
|
}
|
|
|
|
|
|
if (supplier.get()) {
|
|
|
-
|
|
|
- errorNumber = ObjectUtil.isNull(errorNumber) ? 1 : errorNumber + 1;
|
|
|
+
|
|
|
+ errorNumber++;
|
|
|
+ RedisUtils.setCacheObject(errorKey, errorNumber, Duration.ofMinutes(lockTime));
|
|
|
|
|
|
- if (errorNumber.equals(maxRetryCount)) {
|
|
|
- RedisUtils.setCacheObject(errorKey, errorNumber, Duration.ofMinutes(lockTime));
|
|
|
+ if (errorNumber >= maxRetryCount) {
|
|
|
recordLogininfor(username, loginFail, MessageUtils.message(loginType.getRetryLimitExceed(), maxRetryCount, lockTime));
|
|
|
throw new UserException(loginType.getRetryLimitExceed(), maxRetryCount, lockTime);
|
|
|
} else {
|
|
|
-
|
|
|
- RedisUtils.setCacheObject(errorKey, errorNumber);
|
|
|
+
|
|
|
recordLogininfor(username, loginFail, MessageUtils.message(loginType.getRetryLimitCount(), errorNumber));
|
|
|
throw new UserException(loginType.getRetryLimitCount(), errorNumber);
|
|
|
}
|