From 707a616bda6475cfdc5a2d872bd8a39e38118aee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= <2712495353@qq.com> Date: Thu, 7 Aug 2025 18:51:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 9 +++++++- .../workflow/controller/AuthController.java | 21 ++++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 87359ee..5c72177 100644 --- a/pom.xml +++ b/pom.xml @@ -207,13 +207,20 @@ 8.0.1.Final - + commons-beanutils commons-beanutils 1.9.4 + + + org.apache.commons + commons-lang3 + 3.12.0 + + commons-logging commons-logging diff --git a/src/main/java/asia/yulinling/workflow/controller/AuthController.java b/src/main/java/asia/yulinling/workflow/controller/AuthController.java index 20b6403..3f2bda9 100644 --- a/src/main/java/asia/yulinling/workflow/controller/AuthController.java +++ b/src/main/java/asia/yulinling/workflow/controller/AuthController.java @@ -12,10 +12,8 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.http.ResponseEntity; +import org.apache.commons.lang3.StringUtils; import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.LockedException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.web.bind.annotation.PostMapping; @@ -23,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.concurrent.CompletableFuture; + /** *

* 登录控制层 @@ -42,22 +42,27 @@ public class AuthController { private final AuthenticationManager authenticationManager; @PostMapping("/login") - public ResponseEntity> login(@Valid @RequestBody LoginRequest loginRequest) { + public ApiResponse login(@Valid @RequestBody LoginRequest loginRequest) { Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken( loginRequest.getUsername(), loginRequest.getPassword() )); LoginVO loginVO = authService.login(authentication, loginRequest.getRememberMe()); - return ResponseEntity.ok().body(ApiResponse.ofStatus(Status.LOGIN_SUCCESS, loginVO)); + return ApiResponse.ofStatus(Status.LOGIN_SUCCESS, loginVO); } @PostMapping("/logout") - public ApiResponse logout(HttpServletRequest request) { + public ApiResponse logout(HttpServletRequest request) { String token = jwtUtil.getTokenFromRequest(request); - if (token == null || token.isBlank()) { + + // 1. 统一响应格式(全部使用ResponseEntity) + if (StringUtils.isBlank(token)) { return ApiResponse.ofStatus(Status.TOKEN_EXPIRED); } - authService.logout(token); + + // 2. 异步执行登出操作(提高性能) + CompletableFuture.runAsync(() -> authService.logout(token)); + return ApiResponse.ofStatus(Status.SUCCESS); }