From 9d8df32228be984e60dd52c70829531540c27ea4 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Wed, 9 Nov 2022 19:58:28 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.3.2=E3=80=91=E3=80=90auth=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=99=BB=E5=BD=95=E8=BF=87=E7=A8=8B=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BC=93=E5=AD=98=E7=A7=9F=E6=88=B7=E7=BC=96?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/auth/auth/AuthServiceImpl.java | 4 ++++ .../TenantCodeRemoveThreadLocalHolder.java | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/callback/TenantCodeRemoveThreadLocalHolder.java diff --git a/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/AuthServiceImpl.java b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/AuthServiceImpl.java index a10d0e4c0..effd7df9a 100644 --- a/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/AuthServiceImpl.java +++ b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/AuthServiceImpl.java @@ -63,6 +63,7 @@ import cn.stylefeng.roses.kernel.jwt.api.pojo.config.JwtConfig; import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload; import cn.stylefeng.roses.kernel.log.api.LoginLogServiceApi; import cn.stylefeng.roses.kernel.message.api.expander.WebSocketConfigExpander; +import cn.stylefeng.roses.kernel.rule.tenant.RequestTenantCodeHolder; import cn.stylefeng.roses.kernel.rule.util.HttpServletUtil; import cn.stylefeng.roses.kernel.scanner.api.exception.ScannerException; import cn.stylefeng.roses.kernel.scanner.api.exception.enums.ScannerExceptionEnum; @@ -307,6 +308,9 @@ public class AuthServiceImpl implements AuthServiceApi { throw new AuthException(AuthExceptionEnum.LOGIN_LOCKED); } + // 1.3 暂存多租户编码 + RequestTenantCodeHolder.setTenantCode(loginRequest.getTenantCode()); + // 2. 如果开启了验证码校验,则验证当前请求的验证码是否正确 if (SecurityConfigExpander.getCaptchaOpen()) { String verKey = loginRequest.getVerKey(); diff --git a/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/callback/TenantCodeRemoveThreadLocalHolder.java b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/callback/TenantCodeRemoveThreadLocalHolder.java new file mode 100644 index 000000000..371d92bc3 --- /dev/null +++ b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/callback/TenantCodeRemoveThreadLocalHolder.java @@ -0,0 +1,21 @@ +package cn.stylefeng.roses.kernel.auth.callback; + +import cn.stylefeng.roses.kernel.rule.tenant.RequestTenantCodeHolder; +import cn.stylefeng.roses.kernel.rule.threadlocal.RemoveThreadLocalApi; +import org.springframework.stereotype.Component; + +/** + * 清除参数缓存相关的ThreadLocal + * + * @author fengshuonan + * @date 2021/10/29 11:37 + */ +@Component +public class TenantCodeRemoveThreadLocalHolder implements RemoveThreadLocalApi { + + @Override + public void removeThreadLocalAction() { + RequestTenantCodeHolder.clearTenantCode(); + } + +}