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);
}