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