diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java b/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java index f78aac6c9..1dfc896ff 100644 --- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java +++ b/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java @@ -2,7 +2,6 @@ package org.dromara.common.sensitive.annotation; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import org.dromara.common.core.constant.UserConstants; import org.dromara.common.sensitive.core.SensitiveStrategy; import org.dromara.common.sensitive.handler.SensitiveHandler; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java index f4e9f19c9..eba05527c 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java @@ -62,13 +62,13 @@ public class TestSensitiveController extends BaseController { /** * 邮箱 */ - @Sensitive(strategy = SensitiveStrategy.EMAIL) + @Sensitive(strategy = SensitiveStrategy.EMAIL, roleKey = "common", perms = "system:user:query1") private String email; /** * 银行卡 */ - @Sensitive(strategy = SensitiveStrategy.BANK_CARD) + @Sensitive(strategy = SensitiveStrategy.BANK_CARD, roleKey = "common1", perms = "system:user:query") private String bankCard; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java index a34aff8c6..00e14b8e7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java @@ -1,8 +1,7 @@ package org.dromara.system.service.impl; import cn.dev33.satoken.stp.StpUtil; -import cn.hutool.core.util.ObjectUtil; -import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.utils.StringUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.sensitive.core.SensitiveService; import org.dromara.common.tenant.helper.TenantHelper; @@ -27,9 +26,21 @@ public class SysSensitiveServiceImpl implements SensitiveService { if (!StpUtil.isLogin()){ return true; } - if (StpUtil.hasRole(roleKey) || StpUtil.hasPermission(perms)){ - return false; + + if (StringUtils.isNotEmpty(roleKey) && StringUtils.isNotEmpty(perms)){ + if (StpUtil.hasRole(roleKey) && StpUtil.hasPermission(perms)){ + return false; + } + }else if (StringUtils.isNotEmpty(roleKey)){ + if (StpUtil.hasRole(roleKey)){ + return false; + } + }else if (StringUtils.isNotEmpty(perms)){ + if (StpUtil.hasPermission(perms)){ + return false; + } } + if (TenantHelper.isEnable()) { return !LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin(); }