From 1e3dc72d55a5fcf75997825c9a0e78308944a5bb Mon Sep 17 00:00:00 2001 From: TS-QD1 Date: Wed, 23 Apr 2025 16:32:54 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=B8=B4=E6=97=B6=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E7=99=BB=E5=BD=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../temporary/auth/LoginTemporaryAuthFilter.java | 11 +++++++++-- .../login/temporary/LoginTemporaryService.java | 6 +++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/cn/com/tenlion/operator/login/temporary/auth/LoginTemporaryAuthFilter.java b/src/main/java/cn/com/tenlion/operator/login/temporary/auth/LoginTemporaryAuthFilter.java index 6125e67..ac20229 100644 --- a/src/main/java/cn/com/tenlion/operator/login/temporary/auth/LoginTemporaryAuthFilter.java +++ b/src/main/java/cn/com/tenlion/operator/login/temporary/auth/LoginTemporaryAuthFilter.java @@ -29,12 +29,19 @@ public class LoginTemporaryAuthFilter extends AbstractAuthenticationProcessingFi @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, IOException, ServletException { String phone = request.getParameter("username").trim(); - String password = loginTemporaryService.getPassword(); + String password = request.getParameter("password").trim(); if (StringUtils.isBlank(phone)) { throw new UserAuthenticationException("手机号不能为空"); } if (StringUtils.isBlank(password)) { - throw new UserAuthenticationException("密码已过期,请重新获取"); + throw new UserAuthenticationException("密码不能为空"); + } + String temporaryPassword = loginTemporaryService.getPassword(); + if (StringUtils.isBlank(temporaryPassword)) { + throw new UserAuthenticationException("临时密码已过期,请重新获取"); + } + if (!StringUtils.equals(password, temporaryPassword)) { + throw new UserAuthenticationException("密码不正确"); } LoginPhoneAuthToken loginTemporaryAuthToken = new LoginPhoneAuthToken(phone, null); loginTemporaryAuthToken.setDetails(authenticationDetailsSource.buildDetails(request)); diff --git a/src/main/java/cn/com/tenlion/operator/service/login/temporary/LoginTemporaryService.java b/src/main/java/cn/com/tenlion/operator/service/login/temporary/LoginTemporaryService.java index a3f67e1..17ed0a7 100644 --- a/src/main/java/cn/com/tenlion/operator/service/login/temporary/LoginTemporaryService.java +++ b/src/main/java/cn/com/tenlion/operator/service/login/temporary/LoginTemporaryService.java @@ -19,14 +19,14 @@ public class LoginTemporaryService { } public String getPassword() { - return password; + return this.password; } @Scheduled(fixedRate = 10 * 1000) public void autoClearPassword() { long now = System.currentTimeMillis(); - if(now - lastUpdateTime > 180 * 1000) { - password = ""; + if(now - lastUpdateTime > 60 * 1000) { + this.password = ""; } }