From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-biz-common/jnpf-biz-common-audit/src/main/java/jnpf/bizcommon/audit/controller/AuditInternalController.java |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/jnpf-biz-common/jnpf-biz-common-audit/src/main/java/jnpf/bizcommon/audit/controller/AuditInternalController.java b/jnpf-biz-common/jnpf-biz-common-audit/src/main/java/jnpf/bizcommon/audit/controller/AuditInternalController.java
new file mode 100644
index 0000000..3b3e7d8
--- /dev/null
+++ b/jnpf-biz-common/jnpf-biz-common-audit/src/main/java/jnpf/bizcommon/audit/controller/AuditInternalController.java
@@ -0,0 +1,68 @@
+package jnpf.bizcommon.audit.controller;
+
+import cn.dev33.satoken.same.SaSameUtil;
+import jnpf.audit.model.AuditEventDTO;
+import jnpf.bizcommon.audit.service.AuditEventService;
+import jnpf.bizcommon.audit.service.DataInterfaceSignAuditService;
+import jnpf.base.ActionResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 瀹¤浜嬩欢鍐呴儴鎺ユ敹绔偣锛氬彧鏈嶅姟 {@link jnpf.audit.AuditEventApi} 鐨� Feign 璋冪敤锛�
+ * 璧板钩鍙板唴閮ㄩ壌鏉冮摼锛屼笉缁忕綉鍏崇櫧鍚嶅崟鏆撮湶缁欏閮ㄣ�俻ath 涓� AuditEventApi 鐨� @FeignClient
+ * path 淇濇寔瀛楅潰涓�鑷达紙/Internal/audit + /events锛夈��
+ *
+ * <p><b>鍐欑鐐归壌鏉冿紙鏉冨▉瀹夊叏杈圭晫锛�</b>锛氭湰鏂规硶棣栬鐨勬湇鍔′晶
+ * {@link SaSameUtil#checkCurrentRequestToken()} 鏄璁″啓绔偣鐨�<b>鏉冨▉瀹夊叏杈圭晫</b>鈥斺�斿畠鎷掔粷涓�鍒�
+ * 涓嶆惡甯﹀悎娉� {@code SA-SAME-TOKEN} 鐨勮姹傦紝瑕嗙洊缃戝叧灞傜殑<b>鎵�鏈夌粫杩囧彉浣�</b>锛圖iscovery Locator
+ * 鑷姩璺敱 {@code /jnpf-audit/**}銆佸ぇ灏忓啓鍙樹綋銆佸鏂滄潬銆亀hite-ip 鐧藉悕鍗曡烦杩� block 绛夛級锛�
+ * 浣挎湰绔偣<b>鍙帴鍙楁惡甯︽湁鏁� {@code SA-SAME-TOKEN} 鐨勬湇鍔¢棿 Feign 璋冪敤</b>锛�
+ * jnpf-common-feign 鐨� {@code FeignConfig} 璇锋眰鎷︽埅鍣ㄥ鎵�鏈� Feign 鍑虹珯璇锋眰鑷姩娉ㄥ叆
+ * {@code SA-SAME-TOKEN = UserProvider.getInnerAuthToken() = SaSameUtil.getToken()}锛堝凡鍙嶇紪璇戝疄璇侊級锛�
+ * 鑰岀綉鍏宠浆鍙戠殑澶栭儴璇锋眰鍙娉ㄥ叆 {@code SA-SAME-TOKEN_GATEWAY}锛圡vcSecurityConfig锛夛紝<b>涓嶅甫
+ * {@code SA-SAME-TOKEN}</b>锛屾晠 {@code checkCurrentRequestToken()} 璇讳笉鍒� header 鍗虫姏
+ * {@link cn.dev33.satoken.exception.SameTokenInvalidException}锛坰a-token 1.44.0 鐨� same-token 鏍¢獙寮傚父锛�
+ * 璇ョ増鏈棤 {@code SaSameException}锛夋嫆鏀垛�斺�斿牭浣忎换鎰忕櫥褰曠敤鎴风粡缃戝叧浼�犳姇閫掑璁′簨浠躲�佺牬鍧� append-only 瀹屾暣鎬х殑婕忔礊銆�
+ * 璇ユ牎楠屼笌璇锋眰璺緞澶у皬鍐欍�佸墠缂�褰㈡�佹棤鍏筹紝鏄吉閫犻槻绾跨殑鏈�缁堣瀹氬眰銆�
+ *
+ * <p><b>缃戝叧 block-url 鏄旱娣辩涓�灞傦紙闈炴潈濞佽竟鐣岋級</b>锛歳outer.yaml 鐨� {@code gateway.block-url}
+ * 宸茶鐩栨暟鎹潰鏍囧噯璺緞 {@code /api/audit/Internal/**}锛堝墠绔�/DB 鏁版嵁鎺ュ彛鐢級涓�
+ * {@code /jnpf-audit/Internal/**}锛圖iscovery Locator 鑷姩璺敱鏍囧噯璺緞锛夛紱
+ * <b>2026-08-11 瀹¤鎼叆 jnpf-biz-common 鍚庡張澶氬嚭涓ゆ潯鍒拌揪璺緞锛屽凡涓�骞惰ˉ鍫�</b>锛�
+ * {@code /api/biz/Internal/**}锛坆iz-common 鐨勫澶栧墠缂�鍚屾牱 StripPrefix=2锛�
+ * {@code /api/biz/Internal/audit/events} 鍘绘帀涓ゆ鍚庢鏄湰绔偣锛変笌
+ * {@code /jnpf-biz-common/Internal/**}锛圠ocator 鎸夋柊鏈嶅姟鍚嶇敓鎴愶紱鍘� {@code /jnpf-audit/**}
+ * 閭f潯浠嶉』淇濈暀锛屽洜涓� discovery.yaml 閲� jnpf-audit 浣滀负鍒悕渚濈劧娉ㄥ唽锛夈�傚畠鏄旱娣辩涓�灞傦紝
+ * 鎸夌敤鎴峰喅绛�<b>鍙鐩栨暟鎹潰鏍囧噯璺緞銆佷笉绌峰敖鎵�鏈夊彉浣�</b>锛氬ぇ鍐�/娣峰悎澶у皬鍐欏彉浣擄紙濡�
+ * {@code /JNPF-AUDIT/Internal/audit/events}锛夊疄娴嬪湪涓嬫父 Spring MVC 鍥� controller 璺緞鏄犲皠
+ * 澶у皬鍐欐晱鎰熺洿鎺� 404锛堜笉杈炬湰鏂规硶锛夛紝澶氭枩鏉犲彉浣撹骞冲彴"闈炴硶璇锋眰"杩囨护鍣ㄦ嫤鎴�斺�斿潎鏃犳硶钀藉簱锛�
+ * 鍏滃簳鍏ㄩ儴鐢变笂杩版湇鍔′晶 SAME-TOKEN 鎵挎媴銆傜綉鍏冲眰瀹屾暣瑕嗙洊锛堝叏灞� {@code /Internal} 灞忚斀 +
+ * Discovery Locator 鏀舵暃锛変綔涓虹嫭绔嬪钩鍙板姞鍥洪」鍙﹁銆�
+ *
+ * <p><b style="color:red">鈿� 鏂板浠讳綍 /Internal 鍐欑鐐癸紝蹇呴』鍦ㄦ柟娉曢琛屽鍒�
+ * {@code SaSameUtil.checkCurrentRequestToken()} 鏍¢獙</b>鈥斺�旂綉鍏� block-url 涓嶄繚璇佽鐩栨柊璺緞锛�
+ * 鏈嶅姟渚� SAME-TOKEN 鎵嶆槸鏉冨▉杈圭晫锛屾紡鍐欏嵆绛変簬瀵瑰寮�鏀句吉閫犳姇閫掗潰銆�
+ */
+@RestController
+@RequestMapping("/Internal/audit")
+public class AuditInternalController {
+    @Autowired
+    private AuditEventService auditEventService;
+
+    @Autowired
+    private DataInterfaceSignAuditService dataInterfaceSignAuditService;
+
+    @PostMapping("/events")
+    public ActionResult<Integer> record(@RequestBody AuditEventDTO dto) {
+        // 鏉冨▉瀹夊叏杈圭晫锛氫粎鏀捐鎼哄甫鏈夋晥 SA-SAME-TOKEN 鐨勬湇鍔¢棿 Feign 璋冪敤锛涚綉鍏宠浆鍙戠殑鏅�氱櫥褰曡姹�
+        // 鏃犳 header锛屾姏 SameTokenInvalidException锛堟槧灏� AD106锛夆�斺�旇鐩栦竴鍒囩綉鍏崇粫杩囧彉浣擄紙瑙佺被娉ㄩ噴锛�
+        SaSameUtil.checkCurrentRequestToken();
+        int rows = auditEventService.saveIdempotent(dto);
+        dataInterfaceSignAuditService.recordRelatedSign(dto);
+        return ActionResult.success(rows);
+    }
+}

--
Gitblit v1.8.0