Jelajahi Sumber

角色信息 RoleKey 字段加密

ZhuDeKang 2 bulan lalu
induk
melakukan
5ce4c9a30b

+ 23 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java

@@ -5,6 +5,8 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+
+import com.ruoyi.common.utils.SM4Util;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -45,6 +47,9 @@ public class SysRoleServiceImpl implements ISysRoleService
     @Autowired
     private SysRoleDeptMapper roleDeptMapper;
 
+
+    @Autowired
+    private SM4Util sm4Util;
     /**
      * 根据条件分页查询角色数据
      * 
@@ -56,6 +61,9 @@ public class SysRoleServiceImpl implements ISysRoleService
     public List<SysRole> selectRoleList(SysRole role)
     {
         List<SysRole> sysRoles = roleMapper.selectRoleList(role);
+        sysRoles.forEach( p ->{
+            p.setRoleKey(sm4Util.decrypt(p.getRoleKey()));
+        });
         return sysRoles;
     }
 
@@ -69,6 +77,9 @@ public class SysRoleServiceImpl implements ISysRoleService
     public List<SysRole> selectRolesByUserId(Long userId)
     {
         List<SysRole> userRoles = roleMapper.selectRolePermissionByUserId(userId);
+        userRoles.forEach( p ->{
+            p.setRoleKey(sm4Util.decrypt(p.getRoleKey()));
+        });
         List<SysRole> roles = selectRoleAll();
         for (SysRole role : roles)
         {
@@ -94,6 +105,9 @@ public class SysRoleServiceImpl implements ISysRoleService
     public Set<String> selectRolePermissionByUserId(Long userId)
     {
         List<SysRole> perms = roleMapper.selectRolePermissionByUserId(userId);
+        perms.forEach( p ->{
+            p.setRoleKey(sm4Util.decrypt(p.getRoleKey()));
+        });
         Set<String> permsSet = new HashSet<>();
         for (SysRole perm : perms)
         {
@@ -137,7 +151,9 @@ public class SysRoleServiceImpl implements ISysRoleService
     @Override
     public SysRole selectRoleById(Long roleId)
     {
-        return roleMapper.selectRoleById(roleId);
+        SysRole sysRole = roleMapper.selectRoleById(roleId);
+        sysRole.setRoleKey(sm4Util.decrypt(sysRole.getRoleKey()));
+        return sysRole;
     }
 
     /**
@@ -151,6 +167,7 @@ public class SysRoleServiceImpl implements ISysRoleService
     {
         Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId();
         SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName());
+        info.setRoleKey(sm4Util.decrypt(info.getRoleKey()));
         if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue())
         {
             return UserConstants.NOT_UNIQUE;
@@ -169,6 +186,7 @@ public class SysRoleServiceImpl implements ISysRoleService
     {
         Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId();
         SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey());
+        info.setRoleKey(sm4Util.decrypt(info.getRoleKey()));
         if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue())
         {
             return UserConstants.NOT_UNIQUE;
@@ -235,6 +253,7 @@ public class SysRoleServiceImpl implements ISysRoleService
     @Transactional
     public int insertRole(SysRole role)
     {
+        role.setRoleKey(sm4Util.encrypt(role.getRoleKey()));
         // 新增角色信息
         roleMapper.insertRole(role);
         return insertRoleMenu(role);
@@ -250,6 +269,7 @@ public class SysRoleServiceImpl implements ISysRoleService
     @Transactional
     public int updateRole(SysRole role)
     {
+        role.setRoleKey(sm4Util.encrypt(role.getRoleKey()));
         // 修改角色信息
         roleMapper.updateRole(role);
         // 删除角色与菜单关联
@@ -266,6 +286,7 @@ public class SysRoleServiceImpl implements ISysRoleService
     @Override
     public int updateRoleStatus(SysRole role)
     {
+        role.setRoleKey(sm4Util.encrypt(role.getRoleKey()));
         return roleMapper.updateRole(role);
     }
 
@@ -279,6 +300,7 @@ public class SysRoleServiceImpl implements ISysRoleService
     @Transactional
     public int authDataScope(SysRole role)
     {
+        role.setRoleKey(sm4Util.encrypt(role.getRoleKey()));
         // 修改角色信息
         roleMapper.updateRole(role);
         // 删除角色与部门关联