diff --git a/src/main/java/cn/lihongjie/coal/filter/RateLimitFilter.java b/src/main/java/cn/lihongjie/coal/filter/RateLimitFilter.java index d608a716..40532f82 100644 --- a/src/main/java/cn/lihongjie/coal/filter/RateLimitFilter.java +++ b/src/main/java/cn/lihongjie/coal/filter/RateLimitFilter.java @@ -65,8 +65,16 @@ public class RateLimitFilter extends OncePerRequestFilter { RateLimiterService.RateLimitAcquireResult acquireSessionRL = rateLimiterService.acquireSessionRL(sessionId); + + if (acquireSessionRL != RateLimiterService.RateLimitAcquireResult.SUCCESS ) { sysLogService.saveSysLog(request, "限流模块", "会话限流", acquireSessionRL.name()); + + if (acquireSessionRL == RateLimiterService.RateLimitAcquireResult.ERROR){ + writeResponse(new BizException("invalidToken","请重新登录"), response); + return; + } + writeResponse(new BizException("当前会话请求被限流,请稍后再试"), response); log.warn( "会话限流: sessionId {} user {} request {} type {}", @@ -80,6 +88,10 @@ public class RateLimitFilter extends OncePerRequestFilter { RateLimiterService.RateLimitAcquireResult acquireUserRL = rateLimiterService.acquireUserRL(Ctx.currentUser().getId()); if (acquireUserRL != RateLimiterService.RateLimitAcquireResult.SUCCESS ) { sysLogService.saveSysLog(request, "限流模块", "用户限流", acquireSessionRL.name()); + if (acquireUserRL == RateLimiterService.RateLimitAcquireResult.ERROR){ + writeResponse(new BizException("invalidToken","请重新登录"), response); + return; + } writeResponse(new BizException("当前会话请求被限流,请稍后再试"), response); log.warn( "用户限流: sessionId {} user {} request {} type {}", @@ -100,7 +112,10 @@ public class RateLimitFilter extends OncePerRequestFilter { if (acquire != RateLimiterService.RateLimitAcquireResult.SUCCESS) { sysLogService.saveSysLog(request, "限流模块", "IP限流", acquire.name()); - + if (acquire == RateLimiterService.RateLimitAcquireResult.ERROR){ + writeResponse(new BizException("invalidToken","请重新登录"), response); + return; + } writeResponse(new BizException("请求被限流,请稍后再试"), response); log.warn("ip {} request {} type {} is rate limited", ip, request.getRequestURI(), acquire.name()); return; diff --git a/src/main/java/cn/lihongjie/coal/loginUser/service/LoginUserService.java b/src/main/java/cn/lihongjie/coal/loginUser/service/LoginUserService.java index eef874ed..474dfa90 100644 --- a/src/main/java/cn/lihongjie/coal/loginUser/service/LoginUserService.java +++ b/src/main/java/cn/lihongjie/coal/loginUser/service/LoginUserService.java @@ -248,7 +248,7 @@ public class LoginUserService extends BaseService