From a1feac5a8e9ef4f4c2f5aed6d285c7b4f7139025 Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Wed, 28 Dec 2022 12:19:16 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20=E9=81=BF=E5=85=8D?= =?UTF-8?q?=20race=20condition?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/PigAuthenticationSuccessEventHandler.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/support/handler/PigAuthenticationSuccessEventHandler.java b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/support/handler/PigAuthenticationSuccessEventHandler.java index 2729c96de..58fb1e971 100644 --- a/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/support/handler/PigAuthenticationSuccessEventHandler.java +++ b/pigx-auth/src/main/java/com/pig4cloud/pigx/auth/support/handler/PigAuthenticationSuccessEventHandler.java @@ -34,6 +34,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.server.ServletServerHttpResponse; import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.oauth2.core.OAuth2AccessToken; import org.springframework.security.oauth2.core.OAuth2RefreshToken; @@ -102,7 +103,11 @@ public class PigAuthenticationSuccessEventHandler implements AuthenticationSucce private void sendSuccessEventLog(HttpServletRequest request, OAuth2AccessTokenAuthenticationToken accessTokenAuthentication, Map map) { // 发送异步日志事件 - SecurityContextHolder.getContext().setAuthentication(accessTokenAuthentication); + + SecurityContext context = SecurityContextHolder.createEmptyContext(); + context.setAuthentication(accessTokenAuthentication); + SecurityContextHolder.setContext(context); + SysLogDTO logVo = SysLogUtils.getSysLog(); logVo.setTitle("登录成功"); logVo.setLogType(LogTypeEnum.NORMAL.getType());