瀏覽代碼

fix 修复 token 过期登出无法清理在线用户问题

疯狂的狮子Li 1 年之前
父節點
當前提交
5796c0aa9f
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java

+ 6 - 2
ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java

@@ -96,9 +96,13 @@ public class SysLoginService {
                 // 超级管理员 登出清除动态租户
                 TenantHelper.clearDynamic();
             }
-            StpUtil.logout();
             recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGOUT, MessageUtils.message("user.logout.success"));
         } catch (NotLoginException ignored) {
+        } finally {
+            try {
+                StpUtil.logout();
+            } catch (NotLoginException ignored) {
+            }
         }
     }
 
@@ -225,7 +229,7 @@ public class SysLoginService {
             log.info("登录租户:{} 已被停用.", tenantId);
             throw new TenantException("tenant.blocked");
         } else if (ObjectUtil.isNotNull(tenant.getExpireTime())
-                   && new Date().after(tenant.getExpireTime())) {
+            && new Date().after(tenant.getExpireTime())) {
             log.info("登录租户:{} 已超过有效期.", tenantId);
             throw new TenantException("tenant.expired");
         }