目录
4. AOP 类DataScopeAspect 处理注解@DataScope
1. 数据权限展示
在数据权限中,可以通过分配角色,对数据权限进行控制
2. 数据权限作用及操作
- 保障数据安全: 通过数据权限控制,系统可以确保用户只能访问其被授权的数据,防止未经授权的用户获取敏感信息。
- 隔离数据: 数据权限可以用来隔离不同用户、不同部门或角色之间的数据,确保数据的完整性和保密性。
- 合规性: 对于一些需要符合法规和合规性要求的系统,数据权限可以帮助系统管理员确保数据的合法使用。
用户admin 可以看到的数据如下
用户ry 可以看到的数据如下
用户admin 的角色为超级管理员,超级管理员设置为具有访问全部数据权限
用户ry 的角色为普通角色,普通角色设置为只有访问本部门数据权限,其所属部门为测试部门
3. 数据权限后端源码分析
3.1 Controller 层
3.2 Service 层
3.3 Mapper 层
Java Mapper
xml Mapper
4. AOP 类DataScopeAspect 处理注解@DataScope
@DataScope 注解
AOP 类DataScopeAspect 处理注解@DataScope
根据当前登录用户的信息,判断是否为超级管理员,如果不是,则调用dataScopeFilter 方法进行数据权限过滤。这种机制通常用于确保只有非管理员用户才会受到数据权限的约束,管理员用户可以访问所有数据。
分析一下AOP 类DataScopeAspect 对于全部权限、自定义权限、本部门及以下权限、仅本人权限最终添加的SQL 语句及作用
这些SQL语句会在实际查询数据库之前动态地加入到原始的SQL查询语句中,从而确保用户在执行查询操作时受到相应的数据权限约束。此切面在目标方法执行前会拦截,检查用户的角色和数据权限配置,然后根据不同的权限类型生成相应的SQL条件。