System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据管理方法,具体涉及一种基于mybatis框架拦截器(mybatisinterceptor)的数据权限管理方法和系统。
技术介绍
1、市面上存在一些管理数据权限的产品,比如基于开源规则引擎drools配置,但此类产品最常用的场景是业务规则并非数据权限。还有部分思路是建设公司级别的数据管理中台,但是此类产品的建设成本高、代价大,对于产品功能需要全面了解并且针对个别功能改动的灵活性很低。
技术实现思路
1、以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
2、本专利技术的目的在于解决上述问题,提供了一种基于mybatis框架拦截器的数据权限管理方法和系统,通过对数据查询sql语句的重写实现数据权限控制的目的。
3、本专利技术的技术方案为:本专利技术揭示了一种基于mybatis框架拦截器的数据权限管理方法,方法包括:
4、步骤1:分析数据权限场景,支持多种不同模式的数据权限实现方式;
5、步骤2:建立用户、岗位上下级缓存机制;
6、步骤3:创建数据权限注解;
7、步骤4:创建mybatis框架的拦截器,实现数据权限逻辑;
8、步骤5:梳理项目中需要引入的mybatis框架的拦
9、步骤6:根据项目实际需要写代码。
10、根据本专利技术的基于mybatis框架拦截器的数据权限管理方法的一实施例,步骤1中,采用不同模式的数据权限实现方式来控制用户所在岗位是否有数据查询权限,支持上下级岗位数据权限控制,上级可以查看下级数据;多种不同模式包括以下四种:
11、single_column,数据表中有一个字段作为数据权限指定岗位依据;
12、multi_column,数据表中有多个字段为数据权限指定岗位依据;
13、single_column_with_subordinate,数据表中有一个字段作为数据权限指定岗位依据,上级岗位可以查看到下级岗位的数据;
14、multi_column_with_subordinate,数据表中有多个字段为数据权限指定岗位依据,上级岗位可以查看到下级岗位的数据。
15、根据本专利技术的基于mybatis框架拦截器的数据权限管理方法的一实施例,在步骤3中,创建@datapermission注解,支持两种注解配置方式,第一种注解配置方式是数据与数据权限控制字段在同一张表中,只需要配置column字段表示权限控制列即可;第二种注解配置方式是数据与数据权限控制字段不在同一张表中,既需要配置column字段这一权限控制列,还需要配置permissiontablename字段以设置数据权限控制表表名。
16、根据本专利技术的基于mybatis框架拦截器的数据权限管理方法的一实施例,在步骤4中,用于实现数据权限逻辑的拦截器在用户登录后获取该用户的所有岗位,根据步骤1中不同的数据权限控制模式重构原始sql。
17、根据本专利技术的基于mybatis框架拦截器的数据权限管理方法的一实施例,在步骤5中,在使用mybatis框架拦截器的方式实现数据权限sql语句的重构时,同时支持与其他拦截器插件一起使用,其中先执行数据权限拦截器插件,再执行其他拦截器插件,最终获得执行结果。
18、本专利技术还揭示了一种基于mybatis框架拦截器的数据权限管理系统,系统包括:
19、场景分析模块,用于分析数据权限场景,支持多种不同模式的数据权限实现方式;
20、缓存模块,用于建立用户、岗位上下级缓存机制;
21、注解模块,用于创建数据权限注解;
22、拦截器模块,用于创建mybatis框架的拦截器,实现数据权限逻辑;
23、配置模块,用于梳理项目中需要引入的mybatis框架的拦截器,并据此创建mybatis配置,以管理全部拦截器;
24、代码模块,用于根据项目实际需要写代码。
25、根据本专利技术的基于mybatis框架拦截器的数据权限管理系统的一实施例,场景分析模块进一步配置为:
26、采用不同模式的数据权限实现方式来控制用户所在岗位是否有数据查询权限,支持上下级岗位数据权限控制,上级可以查看下级数据;多种不同模式包括以下四种:
27、single_column,数据表中有一个字段作为数据权限指定岗位依据;
28、multi_column,数据表中有多个字段为数据权限指定岗位依据;
29、single_column_with_subordinate,数据表中有一个字段作为数据权限指定岗位依据,上级岗位可以查看到下级岗位的数据;
30、multi_column_with_subordinate,数据表中有多个字段为数据权限指定岗位依据,上级岗位可以查看到下级岗位的数据。
31、根据本专利技术的基于mybatis框架拦截器的数据权限管理系统的一实施例,注解模块进一步配置为:创建@datapermission注解,支持两种注解配置方式,第一种注解配置方式是数据与数据权限控制字段在同一张表中,只需要配置column字段表示权限控制列即可;第二种注解配置方式是数据与数据权限控制字段不在同一张表中,既需要配置column字段这一权限控制列,还需要配置permissiontablename字段以设置数据权限控制表表名。
32、根据本专利技术的基于mybatis框架拦截器的数据权限管理系统的一实施例,拦截器模块进一步配置为:用于实现数据权限逻辑的拦截器在用户登录后获取该用户的所有岗位,根据场景分析模块中不同的数据权限控制模式重构原始sql。
33、根据本专利技术的基于mybatis框架拦截器的数据权限管理系统的一实施例,配置模块进一步配置为:在使用mybatis框架拦截器的方式实现数据权限sql语句的重构时,同时支持与其他拦截器插件一起使用,其中先执行数据权限拦截器插件,再执行其他拦截器插件,最终获得执行结果。
34、本专利技术对比现有技术有如下的有益效果:本专利技术的方法,通过修改原始sql查询语句,添加数据权限约束的形式实现数据查询的权限控制,配套提供了数据权限简易使用的注解,支持多种数据权限控制方式。具体而言,包括了以下的四个优点:
35、1.本专利技术使用mybatis interceptor(mybatis框架拦截器)实现了简单的数据权限管理方式;
36、2.同时兼容多个interceptor插件,支持多类型的mybatis sql语句处理方式;
37、3.支持针对不同岗位以及上下级岗位的本文档来自技高网...
【技术保护点】
1.一种基于mybatis框架拦截器的数据权限管理方法,其特征在于,方法包括:
2.根据权利要求1所述的基于mybatis框架拦截器的数据权限管理方法,其特征在于,步骤1中,采用不同模式的数据权限实现方式来控制用户所在岗位是否有数据查询权限,支持上下级岗位数据权限控制,上级可以查看下级数据;多种不同模式包括以下四种:
3.根据权利要求1所述的基于mybatis框架拦截器的数据权限管理方法,其特征在于,在步骤3中,创建@DataPermission注解,支持两种注解配置方式,第一种注解配置方式是数据与数据权限控制字段在同一张表中,只需要配置COLUMN字段表示权限控制列即可;第二种注解配置方式是数据与数据权限控制字段不在同一张表中,既需要配置COLUMN字段这一权限控制列,还需要配置permissionTableName字段以设置数据权限控制表表名。
4.根据权利要求1所述的基于mybatis框架拦截器的数据权限管理方法,其特征在于,在步骤4中,用于实现数据权限逻辑的拦截器在用户登录后获取该用户的所有岗位,根据步骤1中不同的数据权限控制模式重构原
5.根据权利要求1所述的基于mybatis框架拦截器的数据权限管理方法,其特征在于,在步骤5中,在使用mybatis框架拦截器的方式实现数据权限SQL语句的重构时,同时支持与其他拦截器插件一起使用,其中先执行数据权限拦截器插件,再执行其他拦截器插件,最终获得执行结果。
6.一种基于mybatis框架拦截器的数据权限管理系统,其特征在于,系统包括:
7.根据权利要求6所述的基于mybatis框架拦截器的数据权限管理系统,其特征在于,场景分析模块进一步配置为:
8.根据权利要求6所述的基于mybatis框架拦截器的数据权限管理系统,其特征在于,注解模块进一步配置为:创建@DataPermission注解,支持两种注解配置方式,第一种注解配置方式是数据与数据权限控制字段在同一张表中,只需要配置COLUMN字段表示权限控制列即可;第二种注解配置方式是数据与数据权限控制字段不在同一张表中,既需要配置COLUMN字段这一权限控制列,还需要配置permissionTableName字段以设置数据权限控制表表名。
9.根据权利要求6所述的基于mybatis框架拦截器的数据权限管理系统,其特征在于,拦截器模块进一步配置为:用于实现数据权限逻辑的拦截器在用户登录后获取该用户的所有岗位,根据场景分析模块中不同的数据权限控制模式重构原始SQL。
10.根据权利要求6所述的基于mybatis框架拦截器的数据权限管理系统,其特征在于,配置模块进一步配置为:在使用mybatis框架拦截器的方式实现数据权限SQL语句的重构时,同时支持与其他拦截器插件一起使用,其中先执行数据权限拦截器插件,再执行其他拦截器插件,最终获得执行结果。
...【技术特征摘要】
1.一种基于mybatis框架拦截器的数据权限管理方法,其特征在于,方法包括:
2.根据权利要求1所述的基于mybatis框架拦截器的数据权限管理方法,其特征在于,步骤1中,采用不同模式的数据权限实现方式来控制用户所在岗位是否有数据查询权限,支持上下级岗位数据权限控制,上级可以查看下级数据;多种不同模式包括以下四种:
3.根据权利要求1所述的基于mybatis框架拦截器的数据权限管理方法,其特征在于,在步骤3中,创建@datapermission注解,支持两种注解配置方式,第一种注解配置方式是数据与数据权限控制字段在同一张表中,只需要配置column字段表示权限控制列即可;第二种注解配置方式是数据与数据权限控制字段不在同一张表中,既需要配置column字段这一权限控制列,还需要配置permissiontablename字段以设置数据权限控制表表名。
4.根据权利要求1所述的基于mybatis框架拦截器的数据权限管理方法,其特征在于,在步骤4中,用于实现数据权限逻辑的拦截器在用户登录后获取该用户的所有岗位,根据步骤1中不同的数据权限控制模式重构原始sql。
5.根据权利要求1所述的基于mybatis框架拦截器的数据权限管理方法,其特征在于,在步骤5中,在使用mybatis框架拦截器的方式实现数据权限sql语句的重构时,同时支持与其他拦截器插件一起使用,其中先执行数据权限拦截器插件,再执...
【专利技术属性】
技术研发人员:邱旻翔,章皓,徐进,
申请(专利权)人:上海金融期货信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。