From 3bc1d164d9db9a0d35e814a8756f5a6f80e1d078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Wed, 27 Apr 2022 19:24:20 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=A2=9E=E5=8A=A0=20dubbo=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90=E4=B8=8A=E4=B8=8B=E6=96=87=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BC=A0=E9=80=92=E8=BF=87=E6=BB=A4=E5=99=A8=20?= =?UTF-8?q?=E4=BD=BF=20DataPermissionHelper=20=E6=94=AF=E6=8C=81=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filter/DubboDataPermissionFilter.java | 28 +++++++++++++++++++ .../dubbo/org.apache.dubbo.rpc.Filter | 1 + 2 files changed, 29 insertions(+) create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/filter/DubboDataPermissionFilter.java create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/filter/DubboDataPermissionFilter.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/filter/DubboDataPermissionFilter.java new file mode 100644 index 00000000..8f920c57 --- /dev/null +++ b/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 dataPermissionContext = DataPermissionHelper.getContext(); + context.setObjectAttachment(DataPermissionHelper.DATA_PERMISSION_KEY, dataPermissionContext); + return invoker.invoke(invocation); + } + +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter b/ruoyi-common/ruoyi-common-mybatis/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter new file mode 100644 index 00000000..2daf267c --- /dev/null +++ b/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