浏览代码

修复正常租户登陆后退出切换到过期租户时造成的tenant.ignore-urls配置失效的问题,比如无法获取验证码图片等造成无法登录。

Awen 3 年之前
父节点
当前提交
2980c6e3eb

+ 10 - 10
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/security/TenantSecurityWebFilter.java

@@ -75,16 +75,16 @@ public class TenantSecurityWebFilter extends ApiRequestFilter {
             }
         }
 
-        // 2. 如果请求未带租户的编号,检查是否是忽略的 URL,否则也不允许访问。
-        if (tenantId == null && !isIgnoreUrl(request)) {
-            log.error("[doFilterInternal][URL({}/{}) 未传递租户编号]", request.getRequestURI(), request.getMethod());
-            ServletUtils.writeJSON(response, CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST.getCode(),
-                    "租户的请求未传递,请进行排查"));
-            return;
-        }
-
-        // 3. 校验租户是合法,例如说被禁用、到期
-        if (tenantId != null) {
+        //检查是否是忽略的 URL, 如果是则允许访问
+        if (!isIgnoreUrl(request)) {
+            // 2. 如果请求未带租户的编号,不允许访问。
+            if (tenantId == null) {
+                log.error("[doFilterInternal][URL({}/{}) 未传递租户编号]", request.getRequestURI(), request.getMethod());
+                ServletUtils.writeJSON(response, CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST.getCode(),
+                        "租户的请求未传递,请进行排查"));
+                return;
+            }
+            // 3. 校验租户是合法,例如说被禁用、到期
             try {
                 tenantFrameworkService.validTenant(tenantId);
             } catch (Throwable ex) {