From 763c532deb3226480df3252942dc4499e5f0a2d8 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:21:03 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20DataPermissionHelper?= =?UTF-8?q?=20=E7=BB=8F=E8=BF=87=20dubbo=20=E8=B0=83=E7=94=A8=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=8E=B7=E5=8F=96=20request=20=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/helper/DataPermissionHelper.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataPermissionHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataPermissionHelper.java index 74db1a2b..38b30895 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataPermissionHelper.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataPermissionHelper.java @@ -4,6 +4,8 @@ import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.core.utils.ServletUtils; import lombok.AccessLevel; import lombok.NoArgsConstructor; +import org.apache.dubbo.rpc.RpcContext; +import org.apache.dubbo.rpc.RpcServiceContext; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; @@ -19,7 +21,7 @@ import java.util.Map; @SuppressWarnings("unchecked cast") public class DataPermissionHelper { - private static final String DATA_PERMISSION_KEY = "data:permission"; + public static final String DATA_PERMISSION_KEY = "data:permission"; public static T getVariable(String key) { Map context = getContext(); @@ -34,10 +36,20 @@ public class DataPermissionHelper { public static Map getContext() { HttpServletRequest request = ServletUtils.getRequest(); - Object attribute = request.getAttribute(DATA_PERMISSION_KEY); - if (ObjectUtil.isNull(attribute)) { - request.setAttribute(DATA_PERMISSION_KEY, new HashMap<>()); + Object attribute; + if (request != null) { attribute = request.getAttribute(DATA_PERMISSION_KEY); + if (ObjectUtil.isNull(attribute)) { + request.setAttribute(DATA_PERMISSION_KEY, new HashMap<>()); + attribute = request.getAttribute(DATA_PERMISSION_KEY); + } + } else { + RpcServiceContext context = RpcContext.getServiceContext(); + attribute = context.getObjectAttachment(DATA_PERMISSION_KEY); + if (ObjectUtil.isNull(attribute)) { + context.setObjectAttachment(DATA_PERMISSION_KEY, new HashMap<>()); + attribute = context.getObjectAttachment(DATA_PERMISSION_KEY); + } } if (attribute instanceof Map) { return (Map) attribute;