From 606841e8477fe937e7d8afa9f30d5f633887eca2 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 13 三月 2026 16:12:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-common/xp-common-security/src/main/java/com/xiaopeng/common/security/interceptor/HeaderInterceptor.java |   25 ++++++++++++++++++++-----
 1 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/xp-robotaxi-common/xp-common-security/src/main/java/com/xiaopeng/common/security/interceptor/HeaderInterceptor.java b/xp-robotaxi-common/xp-common-security/src/main/java/com/xiaopeng/common/security/interceptor/HeaderInterceptor.java
index 5f507ce..e010a24 100644
--- a/xp-robotaxi-common/xp-common-security/src/main/java/com/xiaopeng/common/security/interceptor/HeaderInterceptor.java
+++ b/xp-robotaxi-common/xp-common-security/src/main/java/com/xiaopeng/common/security/interceptor/HeaderInterceptor.java
@@ -3,7 +3,10 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.xiaopeng.api.vo.account.LoginOperationUser;
 import com.xiaopeng.api.vo.account.LoginUser;
+import com.xiaopeng.common.core.utils.JwtUtils;
+import io.jsonwebtoken.Claims;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.AsyncHandlerInterceptor;
 import com.xiaopeng.common.core.constant.SecurityConstants;
@@ -32,15 +35,27 @@
         SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID));
         SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME));
         SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY));
+        SecurityContextHolder.setOperationUserKey(ServletUtils.getHeader(request, SecurityConstants.OPERATION_USER_KEY));
 
         String token = SecurityUtils.getToken();
         if (StringUtils.isNotEmpty(token))
         {
-            LoginUser loginUser = AuthUtil.getLoginUser(token);
-            if (StringUtils.isNotNull(loginUser))
-            {
-                AuthUtil.verifyLoginUserExpire(loginUser);
-                SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser);
+            String userType = JwtUtils.getUserType(token);
+            if ("system".equals(userType)) {
+                LoginUser loginUser = AuthUtil.getLoginUser(token);
+                if (StringUtils.isNotNull(loginUser))
+                {
+                    AuthUtil.verifyLoginUserExpire(loginUser);
+                    SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser);
+                }
+            }
+            if ("operation".equals(userType)) {
+                LoginOperationUser operationLoginUser = AuthUtil.getOperationLoginUser(token);
+                if (StringUtils.isNotNull(operationLoginUser))
+                {
+                    AuthUtil.verifyOperationLoginUserExpire(operationLoginUser);
+                    SecurityContextHolder.set(SecurityConstants.LOGIN_OPERATION_USER, operationLoginUser);
+                }
             }
         }
         return true;

--
Gitblit v1.7.1