瀏覽代碼

add 增加 dubbo 数据权限上下文参数传递过滤器 使 DataPermissionHelper 支持全局使用

疯狂的狮子Li 4 年之前
父節點
當前提交
3bc1d164d9

+ 28 - 0
ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/filter/DubboDataPermissionFilter.java

@@ -0,0 +1,28 @@
+package com.ruoyi.common.mybatis.filter;
+
+import com.ruoyi.common.mybatis.helper.DataPermissionHelper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.constants.CommonConstants;
+import org.apache.dubbo.common.extension.Activate;
+import org.apache.dubbo.rpc.*;
+
+import java.util.Map;
+
+/**
+ * dubbo 数据权限参数传递
+ *
+ * @author Lion Li
+ */
+@Slf4j
+@Activate(group = {CommonConstants.CONSUMER})
+public class DubboDataPermissionFilter implements Filter {
+
+    @Override
+    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
+        RpcServiceContext context = RpcContext.getServiceContext();
+        Map<String, Object> dataPermissionContext = DataPermissionHelper.getContext();
+        context.setObjectAttachment(DataPermissionHelper.DATA_PERMISSION_KEY, dataPermissionContext);
+        return invoker.invoke(invocation);
+    }
+
+}

+ 1 - 0
ruoyi-common/ruoyi-common-mybatis/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter

@@ -0,0 +1 @@
+dubboDataPermissionFilter=com.ruoyi.common.mybatis.filter.DubboDataPermissionFilter