From 1edc205e9fb62b7e8db8ae1b0d0121b782513dc9 Mon Sep 17 00:00:00 2001 From: none Date: Thu, 6 Jul 2023 17:50:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0testing=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/xyz/playedu/api/config/PlayEduConfig.java | 3 +++ .../xyz/playedu/api/controller/backend/LoginController.java | 5 ++++- .../xyz/playedu/api/controller/frontend/LoginController.java | 5 ++++- src/main/resources/application.yml | 2 ++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/xyz/playedu/api/config/PlayEduConfig.java b/src/main/java/xyz/playedu/api/config/PlayEduConfig.java index c514dba..4e8f15b 100644 --- a/src/main/java/xyz/playedu/api/config/PlayEduConfig.java +++ b/src/main/java/xyz/playedu/api/config/PlayEduConfig.java @@ -27,6 +27,9 @@ public class PlayEduConfig { @Value("${spring.profiles.active}") private String env; + @Value("${playedu.core.testing}") + private Boolean testing; + @Value("${playedu.limiter.duration}") private Long limiterDuration; diff --git a/src/main/java/xyz/playedu/api/controller/backend/LoginController.java b/src/main/java/xyz/playedu/api/controller/backend/LoginController.java index c242171..bb6c95b 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/LoginController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/LoginController.java @@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.*; import xyz.playedu.api.BCtx; import xyz.playedu.api.bus.BackendBus; +import xyz.playedu.api.config.PlayEduConfig; import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.domain.AdminUser; import xyz.playedu.api.event.AdminUserLoginEvent; @@ -53,6 +54,8 @@ public class LoginController { @Autowired private RateLimiterService rateLimiterService; + @Autowired private PlayEduConfig playEduConfig; + @PostMapping("/login") public JsonResponse login(@RequestBody @Validated LoginRequest loginRequest) { AdminUser adminUser = adminUserService.findByEmail(loginRequest.email); @@ -62,7 +65,7 @@ public class LoginController { String limitKey = "admin-login-limit:" + loginRequest.getEmail(); Long reqCount = rateLimiterService.current(limitKey, 3600L); - if (reqCount > 5) { + if (reqCount > 5 && !playEduConfig.getTesting()) { Long exp = RedisUtil.ttlWithoutPrefix(limitKey); return JsonResponse.error( String.format("您的账号已被锁定,请%s后重试", exp > 60 ? exp / 60 + "分钟" : exp + "秒")); diff --git a/src/main/java/xyz/playedu/api/controller/frontend/LoginController.java b/src/main/java/xyz/playedu/api/controller/frontend/LoginController.java index 55c9df4..3c0f56f 100644 --- a/src/main/java/xyz/playedu/api/controller/frontend/LoginController.java +++ b/src/main/java/xyz/playedu/api/controller/frontend/LoginController.java @@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import xyz.playedu.api.FCtx; +import xyz.playedu.api.config.PlayEduConfig; import xyz.playedu.api.domain.User; import xyz.playedu.api.event.UserLoginEvent; import xyz.playedu.api.event.UserLogoutEvent; @@ -52,6 +53,8 @@ public class LoginController { @Autowired private RateLimiterService rateLimiterService; + @Autowired private PlayEduConfig playEduConfig; + @PostMapping("/password") public JsonResponse password(@RequestBody @Validated LoginPasswordRequest req) throws LimitException { @@ -64,7 +67,7 @@ public class LoginController { String limitKey = "login-limit:" + req.getEmail(); Long reqCount = rateLimiterService.current(limitKey, 600L); - if (reqCount >= 10) { + if (reqCount >= 10 && !playEduConfig.getTesting()) { Long exp = RedisUtil.ttlWithoutPrefix(limitKey); return JsonResponse.error( String.format("您的账号已被锁定,请%s后重试", exp > 60 ? exp / 60 + "分钟" : exp + "秒")); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3b9b98d..4b3e265 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -65,6 +65,8 @@ sa-token: token-prefix: "Bearer" playedu: + core: + testing: false limiter: duration: 60 limit: 240