From e9bfa1396ff47d171b3052a606e0931e6f93cc9c Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期四, 10 四月 2025 12:05:23 +0800
Subject: [PATCH] 还原framework代码

---
 iailab-framework/iailab-common-biz-data-permission/src/main/java/com/iailab/framework/datapermission/core/rpc/DataPermissionRequestInterceptor.java |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/iailab-framework/iailab-common-biz-data-permission/src/main/java/com/iailab/framework/datapermission/core/rpc/DataPermissionRequestInterceptor.java b/iailab-framework/iailab-common-biz-data-permission/src/main/java/com/iailab/framework/datapermission/core/rpc/DataPermissionRequestInterceptor.java
new file mode 100644
index 0000000..6969a45
--- /dev/null
+++ b/iailab-framework/iailab-common-biz-data-permission/src/main/java/com/iailab/framework/datapermission/core/rpc/DataPermissionRequestInterceptor.java
@@ -0,0 +1,27 @@
+package com.iailab.framework.datapermission.core.rpc;
+
+import com.iailab.framework.datapermission.core.annotation.DataPermission;
+import com.iailab.framework.datapermission.core.aop.DataPermissionContextHolder;
+import feign.RequestInterceptor;
+import feign.RequestTemplate;
+
+/**
+ * DataPermission 的 RequestInterceptor 实现类:Feign 请求时,将 {@link DataPermission} 设置到 header 中,继续透传给被调用的服务
+ *
+ * 注意:由于 {@link DataPermission} 不支持序列化和反序列化,所以暂时只能传递它的 enable 属性
+ *
+ * @author iailab
+ */
+public class DataPermissionRequestInterceptor implements RequestInterceptor {
+
+    public static final String ENABLE_HEADER_NAME = "data-permission-enable";
+
+    @Override
+    public void apply(RequestTemplate requestTemplate) {
+        DataPermission dataPermission = DataPermissionContextHolder.get();
+        if (dataPermission != null && Boolean.FALSE.equals(dataPermission.enable())) {
+            requestTemplate.header(ENABLE_HEADER_NAME, "false");
+        }
+    }
+
+}

--
Gitblit v1.9.3