From c55aca77e84607238c3354168a8642176c575ca1 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 10 十一月 2026 11:42:16 +0800
Subject: [PATCH] feat(bpm): 待办任务站内信实时推送

---
 yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/LoginUserHandshakeInterceptor.java |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/LoginUserHandshakeInterceptor.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/LoginUserHandshakeInterceptor.java
index 3a31825..30663bc 100644
--- a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/LoginUserHandshakeInterceptor.java
+++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/LoginUserHandshakeInterceptor.java
@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.framework.websocket.core.security;
 
+import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
@@ -19,7 +20,7 @@
  * 1. 鍓嶇杩炴帴 websocket 鏃讹紝浼氶�氳繃鎷兼帴 ?token={token} 鍒� ws:// 杩炴帴鍚庯紝杩欐牱瀹冨彲浠ヨ {@link TokenAuthenticationFilter} 鎵�璁よ瘉閫氳繃
  * 2. {@link LoginUserHandshakeInterceptor} 璐熻矗鎶� {@link LoginUser} 娣诲姞鍒� {@link WebSocketSession} 涓�
  *
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
  */
 public class LoginUserHandshakeInterceptor implements HandshakeInterceptor {
 
@@ -27,9 +28,16 @@
     public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response,
                                    WebSocketHandler wsHandler, Map<String, Object> attributes) {
         LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
-        if (loginUser != null) {
-            WebSocketFrameworkUtils.setLoginUser(loginUser, attributes);
+        if (loginUser == null) {
+            return false;
         }
+        // WebSocket 鍦板潃锛堝 /infra/ws锛変笉甯� /admin-api銆�/app-api 鍓嶇紑锛�
+        // 鍥犳 mock 鐧诲綍鏃� WebFrameworkUtils#getLoginUserType 鍙栦笉鍒扮敤鎴风被鍨嬨��
+        // 杩欓噷鍏滃簳涓虹鐞嗗憳绫诲瀷锛岄伩鍏� WebSocketSessionManagerImpl 鐢� null 浣滀负 key 璁板綍浼氳瘽鏃舵姏 NPE 鏂紑杩炴帴銆�
+        if (loginUser.getUserType() == null) {
+            loginUser.setUserType(UserTypeEnum.ADMIN.getValue());
+        }
+        WebSocketFrameworkUtils.setLoginUser(loginUser, attributes);
         return true;
     }
 

--
Gitblit v1.9.3