From 073605b6d62363dd7d48f5ca047a1d401418574a Mon Sep 17 00:00:00 2001
From: zzw <228544128@qq.com>
Date: 星期日, 04 十月 2026 17:34:06 +0800
Subject: [PATCH] docs: record 2026-10-04 integration commit

---
 emergency-repair-server/src/main/java/com/emergencyrepair/common/audit/CurrentUserInterceptor.java |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/emergency-repair-server/src/main/java/com/emergencyrepair/common/audit/CurrentUserInterceptor.java b/emergency-repair-server/src/main/java/com/emergencyrepair/common/audit/CurrentUserInterceptor.java
new file mode 100644
index 0000000..9a2c7cb
--- /dev/null
+++ b/emergency-repair-server/src/main/java/com/emergencyrepair/common/audit/CurrentUserInterceptor.java
@@ -0,0 +1,42 @@
+package com.emergencyrepair.common.audit;
+
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Component
+public class CurrentUserInterceptor implements HandlerInterceptor {
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+        CurrentUserContext.set(resolveUsername(request));
+        return true;
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
+                                Object handler, Exception exception) {
+        CurrentUserContext.clear();
+    }
+
+    private String resolveUsername(HttpServletRequest request) {
+        String username = request.getHeader("X-Username");
+        if (StringUtils.hasText(username)) {
+            return username.trim();
+        }
+        String authorization = request.getHeader("Authorization");
+        if (!StringUtils.hasText(authorization)) {
+            return "admin";
+        }
+        String token = authorization.trim();
+        if (token.startsWith("Bearer ")) {
+            token = token.substring(7).trim();
+        }
+        if (token.startsWith("demo-") && token.endsWith("-token")) {
+            token = token.substring(5, token.length() - 6);
+        }
+        return StringUtils.hasText(token) ? token : "admin";
+    }
+}

--
Gitblit v1.9.1