Просмотр исходного кода

fix 修复 satoken异步调用需要手动传递上下文

疯狂的狮子Li 1 год назад
Родитель
Сommit
36ab89d582

+ 6 - 1
ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java

@@ -1,6 +1,8 @@
 package org.dromara.auth.controller;
 
+import cn.dev33.satoken.context.mock.SaTokenContextMockUtil;
 import cn.dev33.satoken.exception.NotLoginException;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.codec.Base64;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -102,7 +104,10 @@ public class TokenController {
 
         Long userId = LoginHelper.getUserId();
         scheduledExecutorService.schedule(() -> {
-            remoteMessageService.publishMessage(List.of(userId), "欢迎登录RuoYi-Cloud-Plus微服务管理系统");
+            SaTokenContextMockUtil.setMockContext(() -> {
+                StpUtil.setTokenValueToStorage(loginVo.getAccessToken());
+                remoteMessageService.publishMessage(List.of(userId), "欢迎登录RuoYi-Cloud-Plus微服务管理系统");
+            });
         }, 3, TimeUnit.SECONDS);
         return R.ok(loginVo);
     }