@@ -27,9 +34,7 @@ public class LoginAttemptFilter extends OncePerRequestFilter {
...
@@ -27,9 +34,7 @@ public class LoginAttemptFilter extends OncePerRequestFilter {
if(username!=null&&!username.isEmpty()){
if(username!=null&&!username.isEmpty()){
if(loginAttemptService.isBlocked(username)){
if(loginAttemptService.isBlocked(username)){
LogManager.logWarning(LogConstants.CTX_AUDIT,"Blocked login attempt for locked user: "+username);
LogManager.logWarning(LogConstants.CTX_AUDIT,"Blocked login attempt for locked user: "+username);
response.setStatus(429);// HTTP 429 Too Many Requests
writeErrorResponse(response,HttpStatus.TOO_MANY_REQUESTS,"Account is temporarily locked due to too many failed login attempts. Please try again later.","账户因多次登录失败被暂时锁定,请稍后再试");
response.getWriter().write("Account is temporarily locked due to too many failed login attempts. Please try again later.");
response.getWriter().flush();
return;
return;
}
}
}
}
...
@@ -41,4 +46,18 @@ public class LoginAttemptFilter extends OncePerRequestFilter {
...
@@ -41,4 +46,18 @@ public class LoginAttemptFilter extends OncePerRequestFilter {