System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Mybatis的动态数据权限控制方法、设备及介质技术_技高网

一种基于Mybatis的动态数据权限控制方法、设备及介质技术

技术编号:40037022 阅读:4 留言:0更新日期:2024-01-16 19:08
本申请公开了一种基于Mybatis的动态数据权限控制方法、设备及介质,涉及数据权限控制技术领域。方法包括:获取客户端发出的请求数据库操作动作,并基于请求数据库操作动作,判断是否需要启用数据权限功能;其中,数据权限功能通过预设的权限配置方式配置;在需要启用数据权限功能的情况下,Mybatis拦截器拦截请求数据库操作动作的Mapper层数据操作,Mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证;在客户端的数据权限验证通过的情况下,Mybatis拦截器查找数据库中预置的过滤规则,执行数据库操作动作。本申请通过上述方法实现了数据权限前置化、可视化,对不同角色用户请求数据资源进行动态的权限控制。

【技术实现步骤摘要】

本申请涉及数据权限控制,尤其涉及一种基于mybatis的动态数据权限控制方法、设备及介质。


技术介绍

1、对于web(world wide web,全球广域网)服务来说,web服务后台系统是管理web服务的基石。而数据权限,在各个业务服务的业务需求中,都是一个必不可少的需求。常用的做法是将在具体业务服务中进行硬编码,当成具体业务需求来实现,但是随着业务系统的不断增多,也由于个人编码风格、技术水平等问题,往往导致服务混乱,数据权限实现多样,难以管理等一系列问题。

2、通过上述的分析,现有技术存在的问题及缺陷为:

3、若数据权限有变更,则需要开发人员根据需求修改代码,重新走发版流程,修改复杂,过程繁琐,缺乏灵活性。


技术实现思路

1、本申请实施例提供了一种基于mybatis的动态数据权限控制方法、设备及介质,解决了现有技术中若数据权限有变更、则需要开发人员根据需求重新修改代码的问题。

2、第一方面,本申请实施例提供了一种基于mybatis的动态数据权限控制方法,包括:获取客户端发出的请求数据库操作动作,并基于请求数据库操作动作,判断是否需要启用数据权限功能;其中,数据权限功能通过预设的权限配置方式配置;在需要启用数据权限功能的情况下,mybatis拦截器拦截请求数据库操作动作的mapper层数据操作,mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证;在客户端的数据权限验证通过的情况下,mybatis拦截器查找数据库中预置的过滤规则,执行数据库操作动作。

3、在本申请的一种实现方式中,mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证,具体包括:解析请求数据库操作动作的mapper层数据操作,以获取请求数据库操作动作中包含的客户端信息;基于请求数据库操作动作中包含的客户端信息,判断客户端是否具有用户授权;在确定客户端具有用户授权的情况下,确定客户端的数据权限验证通过。

4、在本申请的一种实现方式中,mybatis拦截器查找数据库中预置的过滤规则,执行数据库操作动作,具体包括:步骤1:判断mapper层数据操作是否是select查询,若是,则执行下一步骤;步骤2:获取mapper层数据操作对应的注解信息,或者匹配对应的权限方法;步骤3:在确定获取到注解信息的情况下配置注解项数据权限,从数据库查询数据权限模型;其中,注解项数据权限为通过注解信息来实现的数据权限;以及,在确定匹配到权限方法的情况下,从数据库查询待选择数据权限模型;步骤5:在确定配置注解项数据权限之后,判断注解项数据权限是否有数据权限的code;以及,判断是否查询到待选择数据权限模型;步骤6:在没有查询到待选择数据权限模型且配置的数据权限的code不为空,则根据数据权限的code获取待应用数据权限模型。步骤7:根据待应用数据权限模型,组装权限sql语句逻辑;步骤8:将权限sql语句逻辑提交数据库执行操作。

5、在本申请的一种实现方式中,方法还包括:若没有查询到待选择数据权限模型且配置的数据权限的code为空,则选择默认数据权限模型为待应用;若查询到待选择数据权限模型,则根据客户端的id确定待选择数据权限模型中的待应用数据权限模型。

6、在本申请的一种实现方式中,在mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证之前,方法还包括:将注解信息、权限验证逻辑、过滤规则、客户端信息和数据库操作动作类型写入缓存;其中,数据库操作动作类型包括对数据的增加、删除、改动和查看;以及,预先配置mybatis拦截器,将拦截器注册到缓存中。

7、在本申请的一种实现方式中,在mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证之前,方法还包括:判断客户端的数据权限是否需要验证;在客户端的数据权限无需验证的情况下,直接执行数据库操作动作。

8、在本申请的一种实现方式中,方法还包括:在组装不成功的情况下,生成逻辑验证的异常提示消息发送给管理端。

9、在本申请的一种实现方式中,预设的权限配置方式包括管理端前置化平台配置。

10、第二方面,本申请实施例还提供了一种基于mybatis的动态数据权限控制设备,设备包括至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:获取客户端发出的请求数据库操作动作,并基于请求数据库操作动作,判断是否需要启用数据权限功能;其中,数据权限功能通过预设的权限配置方式配置;在需要启用数据权限功能的情况下,mybatis拦截器拦截请求数据库操作动作的mapper层数据操作,mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证;其中,权限验证逻辑由管理端通过预设的权限配置方式配置;在客户端的数据权限验证通过的情况下,mybatis拦截器查找数据库中预置的过滤规则,执行数据库操作动作。

11、第三方面,本申请实施例还提供了一种基于mybatis的动态数据权限控制的非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,计算机可执行指令设置为:获取客户端发出的请求数据库操作动作,并基于请求数据库操作动作,判断是否需要启用数据权限功能;其中,数据权限功能通过预设的权限配置方式配置;在需要启用数据权限功能的情况下,mybatis拦截器拦截请求数据库操作动作的mapper层数据操作,mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证;其中,权限验证逻辑由管理端通过预设的权限配置方式配置;在客户端的数据权限验证通过的情况下,mybatis拦截器查找数据库中预置的过滤规则,执行数据库操作动作。

12、本申请实施例提供了一种基于mybatis的动态数据权限控制方法、设备及介质,通过将数据权限前置化,可视化,解决了数据权限硬编码、难维护、管理困难的问题。

本文档来自技高网...

【技术保护点】

1.一种基于Mybatis的动态数据权限控制方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于Mybatis的动态数据权限控制方法,其特征在于,所述Mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证,具体包括:

3.根据权利要求1所述的一种基于Mybatis的动态数据权限控制方法,其特征在于,所述Mybatis拦截器查找数据库中预置的过滤规则,执行数据库操作动作,具体包括:

4.根据权利要求3所述的一种基于Mybatis的动态数据权限控制方法,其特征在于,所述方法还包括:

5.根据权利要求3所述的一种基于Mybatis的动态数据权限控制方法,其特征在于,在所述Mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证之前,所述方法还包括:

6.根据权利要求1所述的一种基于Mybatis的动态数据权限控制方法,其特征在于,在所述Mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证之前,所述方法还包括:

7.根据权利要求3所述的一种基于Mybatis的动态数据权限控制方法,其特征在于,所述方法还包括:

8.根据权利要求1所述的一种基于Mybatis的动态数据权限控制方法,其特征在于,所述预设的权限配置方式包括管理端前置化平台配置。

9.一种基于Mybatis的动态数据权限控制设备,其特征在于,所述设备包括:

10.一种基于Mybatis的动态数据权限控制的非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:

...

【技术特征摘要】

1.一种基于mybatis的动态数据权限控制方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于mybatis的动态数据权限控制方法,其特征在于,所述mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限进行验证,具体包括:

3.根据权利要求1所述的一种基于mybatis的动态数据权限控制方法,其特征在于,所述mybatis拦截器查找数据库中预置的过滤规则,执行数据库操作动作,具体包括:

4.根据权利要求3所述的一种基于mybatis的动态数据权限控制方法,其特征在于,所述方法还包括:

5.根据权利要求3所述的一种基于mybatis的动态数据权限控制方法,其特征在于,在所述mybatis拦截器查找数据库中预置的权限验证逻辑,对客户端的数据权限...

【专利技术属性】
技术研发人员:王克王少华肖雪武红强
申请(专利权)人:浪潮工创山东供应链科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1