掌桥专利:专业的专利平台
掌桥专利
首页

一种基于切面编程的权限控制方法

文献发布时间:2023-06-19 11:02:01


一种基于切面编程的权限控制方法

技术领域

本发明涉及切面,具体的,涉及一种基于切面编程的权限控制方法。

背景技术

在业务管理信息系统中,基于用户、角色和机构,对系统资源(如菜单、功能、数据等)进行访问控制,是一项基本和重要的功能。“确保已授权用户在授权的范围内,对系统进行访问控制”,是一个业务管理信息系统必须的要求。 最常见的业务管理信息系统采用的权限模型是RBAC(Role-Based Access Control),需要对系统的所有资源进行权限控制,系统资源可以简单地概括为静态资源(功能操作、数据列)和动态资源(数据),也分别称为对象资源和数据资源。RBAC的目标是对系统中所有对象资源和数据资源进行权限控制。其中难点就是对动态资源(数据资源)的访问控制。

大部分系统的数据权限控制,由于业务数据的动态性,都是通过数据访问接口中,通过传递用户信息(角色、机构等),在接口方法中,通过sql拼接或注入来实现,主要弊端如下:1、权限访问控制代码复杂,凡是需要权限控制的地方,均需增加额外,与业务无关的代码和参数;2、权限访问逻辑分散到整个系统中,一旦业务规则发生变化,可能影响到全局,带来大量的维护工作量;3、业务逻辑与权限控制代码混淆,增加了业务模块的复杂度,给系统排错和维护也带来不必要的开销。

发明内容

本发明的目的在于,针对上述问题,提出一种基于切面编程的权限控制方法。

一种基于切面编程的权限控制方法,包括如下步骤:

步骤1:确定业务类型,通过业务分析模块确定满足组织机构、业务数据类别和业务数据特定属性的权限业务规则;

步骤2:定义权限字段,根据获取的权限业务规则对权限字段进行限定;

步骤3:根据业务分析模块确定的业务需求,输出基于特定业务对象的数据权限规则至切面拦截器;

步骤4:将不同的业务方法类型植入指定拦截器,同时将业务方法数据传送给切面拦截器;

步骤5:定义切面拦截器,根据接收到的业务方法数据和数据权限规则,实现业务查询权限控制;

步骤6:输出经权限过滤的业务数据。

所述步骤2包括如下子步骤:

S201:按树形多级组织机构编码规则对权限字段进行限定;

S202:按照组织机构权限控制的业务数据,增加编码字段。

优选的,所述机构编码作为每个机构的唯一属性,下级机构自动继承上级机构编码,并扩展本级编码。

优选的,所述步骤3中数据权限规则的条件规则包括:“=”、“!=”、“包含”、“左模糊”和“右模糊”。

步骤5包括如下子步骤:

S501:获取登录用户所在机构;

S502:根据用户的查询业务,注入数据权限规则查询条件,查询符合条件的业务数据。

本发明的有益效果:利用切面技术,实现权限控制代码与业务代码分离,业务逻辑编写人员关注业务逻辑,无需关注业务数据的访问权限;通过灵活、简单的权限访问编码规则,支持动态配置,用户可自定义,实现大多数情况下业务数据访问的控制;针对特定数据访问规则,支持扩展权限控制接口,通过二次开发等形式实现特殊业务数据控制。

附图说明

图1为本发明的工作流程图。

具体实施方式

下面结合附图对本发明作进一步说明。

一种基于切面编程的权限控制方法,包括如下步骤:

步骤1:确定业务类型,通过业务分析模块确定满足组织机构、业务数据类别和业务数据特定属性的权限业务规则;

步骤2:定义权限字段,根据获取的权限业务规则对权限字段进行限定;

步骤3:根据业务分析模块确定的业务需求,输出基于特定业务对象的数据权限规则至切面拦截器;

步骤4:将不同的业务方法类型植入指定拦截器,同时将业务方法数据传送给切面拦截器;

步骤5:定义切面拦截器,根据接收到的业务方法数据和数据权限规则,实现业务查询权限控制;

步骤6:输出经权限过滤的业务数据。

所述步骤2包括如下子步骤:

S201:按树形多级组织机构编码规则对权限字段进行限定;

S202:按照组织机构权限控制的业务数据,增加编码字段。

需要理解的是,所述机构编码作为每个机构的唯一属性,下级机构自动继承上级机构编码,并扩展本级编码。

需要理解的是,所述步骤3中数据权限规则的条件规则包括:“=”、“!=”、“包含”、“左模糊”和“右模糊”。

步骤5包括如下子步骤:

S501:获取登录用户所在机构;

S502:根据用户的查询业务,注入数据权限规则查询条件,查询符合条件的业务数据。

需要说明的是,通过更改业务数据编码规则和权限规则,可以很轻松实现例如用户只能查看自己的业务数据、用户只能查看某类或某几类指定的业务数据,用户只能查看某个指定时间段数据等,只需简单实现不同的编码和比较规则即可。

需要说明的是,通过权限规则控制用户或角色数据访问权限的规则问题,例如根据用户所在机构级别,或用户所在部门,或用户所属的角色,制定业务数据的编码规则,满足业务数据的多样性、动态性的基础上,通过规则来控制用户访问数据权限。

相关技术
  • 一种基于切面编程的权限控制方法
  • 一种基于双层权限控制的业务报表数据权限控制方法
技术分类

06120112773906