一种基于注解实现的组合鉴权的权限管理系统及方法技术方案

技术编号:31164867 阅读:51 留言:0更新日期:2021-12-04 10:39
本发明专利技术公开了一种基于注解实现的组合鉴权的权限管理系统及方法,基于注解实现的组合鉴权的权限管理系统包括确权模块、赋权模块、鉴权模块;其中,所述鉴权模块将注解作为切入点,将所有需要判断业务数据访问权限的业务处理方法统一引入到切面逻辑进行处理,切面负责解析注解所包含的属性,进而实现鉴权操作。本发明专利技术的基于注解实现的组合鉴权的权限管理系统及方法,在模块化编程的实现下,在业务开发中可以完全不需要考虑数据操作权限的校验问题,所需要做的仅仅是在正确的地方使用注解的组合即可,不仅解决了开发业务中会遗漏校验逻辑的致命错误,而且优化了代码实现逻辑大幅降低代码冗余,同时也为开发人员屏蔽掉了业务不相关的基础逻辑。相关的基础逻辑。相关的基础逻辑。

【技术实现步骤摘要】
一种基于注解实现的组合鉴权的权限管理系统及方法
[0001]

[0002]本专利技术涉及访问权限控制
,具体来说,涉及一种基于注解实现的组合鉴权的权限管理系统及方法。

技术介绍

[0003]随着互联网的快速发展,权限访问控制成为平台重点关注的问题。很多平台开始建立自己的权限管理系统,然而随着业务系统的越来越复杂,对鉴权的多元化需求越来越高,如何实现平台复杂化多元化的鉴权需求,这就成为平台鉴权面临的一个问题。
[0004]目前存在的权限管理方案中,主要是依赖RBAC(Role

Based Access Control)基于角色的权限控制,RBAC是权限控制的一个模型,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。然而在鉴权方面RBAC并没有提供友好的鉴权方案,还是需要业务系统自己去处理鉴权逻辑,多数平台直接将鉴权逻辑与业务代码耦合在一起,导致代码耦合程度高、复用率低、代码冗余,出现难以维护的局面。有些平台进行了优化调整,将鉴权逻辑从业务代码中抽离出来,作为一个独立的模块,方便在平台的多个业务系统中复用,然而在鉴权时还是使用传统的静态方法方式,和业务代码耦合度还是比较高,而且仍然无法解决复杂业务系统的多元鉴权需求,因此,这就需要一套统一的、多元化的、完整的、可扩展的鉴权方案来解决以上问题。

技术实现思路

[0005]针对相关技术中的上述技术问题,本专利技术提出一种基于注解实现的组合鉴权的权限管理系统及方法,能够克服现有技术的上述不足。
[0006]为实现上述技术目的,本专利技术的技术方案是这样实现的:一种基于注解实现的组合鉴权的权限管理系统,包括:确权模块,用于确认应用具有的基本权限内容,包括资源、操作、角色等基本信息;赋权模块,用于为用户设置操作资源的权限;鉴权模块,用于负责判断当前用户是否具有操作某项资源的权限,鉴权模块是权限控制系统中的非常重要的一部分;其中,所述鉴权模块将注解作为切入点,将所有需要判断业务数据访问权限的业务处理方法统一引入到切面逻辑进行处理,切面负责解析注解所包含的属性,进而实现鉴权操作。
[0007]进一步地,所述资源为被限制访问的资源,由应用自行定义;所述操作为对资源进行的某些操作;所述角色为系统的内置角色或是应用自定义的角色。
[0008]进一步地,所述操作包括查看、添加、修改及删除。
[0009]根据本专利技术的另一方面,提供了一种基于注解实现的组合鉴权方法,包括以下步
骤:S1 应用注册:业务系统要使用权限系统,首先需要进行应用注册,获取应用唯一标识,即应用ID;S2 确权和赋权操作:确认应用具有的基本权限内容,为用户设置操作资源的权限;S3 引入权限SDK:应用开发者在业务系统中引入权限系统提供的权限SDK,通过权限SDK中提供的基于注解的组合鉴权方法进行用户鉴权;S4 实现UserConfig接口:开发者需要实现权限SDK中的UserConfig接口,并使用@Component自动注入,UserConfig接口提供获取应用ID、用户ID、资源所在组ID三个信息,所述信息从配置、SESSION、REQUEST中获取,或设为某个固定值;UserConfig接口还提供默认的获取操作者前缀的方法getUserPrefix和获取权限缓存时间的方法getCacheExpiredTime(), getUserPrefix方法的值应为数据库定义的subjectId的前缀。
[0010]进一步地,所述注解为@PemDeclare注解,使用@PemDeclare注解组合鉴权时需将注解添加到具体类或方法上,@PemDeclare支持通过权限或角色两种方式进行权限控制,属性分别使用perms和roles来表示,perms中的值由资源的唯一标识组成,roles中的值由角色别名组成。
[0011]进一步地,使用@PemDeclare注解组合鉴权时,如果同一个类中的类和方法上同时添加了@PemDeclare注解,在访问此类中的方法时,要求必须同时具有类和方法中注解指定的权限才可访问。
[0012]进一步地,步骤S4中根据实际需要可以重写方法。
[0013]本专利技术的有益效果:本专利技术的基于注解实现的组合鉴权的权限管理系统及方法主要解决了平台中多角色多权限的组合鉴权问题,在模块化编程的实现下,在实际业务开发中可以完全不需要考虑数据操作权限的校验问题,所需要做的仅仅是在正确的地方使用@PemDeclare注解的组合即可,不仅解决了开发业务中会遗漏校验逻辑的致命错误,而且优化了代码实现逻辑大幅降低代码冗余,同时也为开发人员屏蔽掉了业务不相关的基础逻辑,提升了代码质量和增加逻辑的严谨性。更重要的是鉴权功能可移植,可扩展、满足业务系统的多元鉴权需求,为业务系统提供了方便统一的鉴权方案。
附图说明
[0014]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1是根据本专利技术实施例所述的基于注解实现的组合鉴权的权限管理系统的权限管理模型示意图;图2是根据本专利技术实施例所述的基于注解实现的组合鉴权方法的流程图。
具体实施方式
[0016]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。
[0017]根据本专利技术实施例所述的基于注解实现的组合鉴权的权限管理系统,包括:确权模块,用于确认应用具有的基本权限内容,包括资源、操作、角色等基本信息;所述资源为被限制访问的资源,由应用自行定义;所述操作为对资源进行的某些操作,例如查看、添加、修改、删除等;所述角色为系统的内置角色或是应用自定义的角色。
[0018]赋权模块,用于为用户设置操作资源的权限;鉴权模块,用于负责判断当前用户是否具有操作某项资源的权限,鉴权模块是权限控制系统中的非常重要的一部分;其中,所述鉴权模块将注解作为切入点,将所有需要判断业务数据访问权限的业务处理方法统一引入到切面逻辑进行处理,切面负责解析注解所包含的属性,进而实现鉴权操作。
[0019]所述基于注解实现的组合鉴权的权限管理系统支持用户

权限控制和用户

角色

权限控制两种权限控制模型,方案模型如图1所示。
[0020]如图2所示,根据本专利技术实施例所述的一种基于注解实现的组合鉴权方法,包括以下步骤:S1 应用注册:业务系统要使用权限系统,首先需要进行应用注册,获取应用唯一标识,即应用ID;S2 确权和赋权操作:确认应用具有的基本权限内容,为用户设置操作资源的权限;S3 引入权限SDK:应用开发者在业务系统本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于注解实现的组合鉴权的权限管理系统,其特征在于,包括:确权模块,用于确认应用具有的基本权限内容,包括资源、操作、角色;赋权模块,用于为用户设置操作资源的权限;鉴权模块,用于负责判断当前用户是否具有操作某项资源的权限;其中,所述鉴权模块将注解作为切入点,将所有需要判断业务数据访问权限的业务处理方法统一引入到切面逻辑进行处理,切面负责解析注解所包含的属性,进而实现鉴权操作。2.根据权利要求1所述的基于注解实现的组合鉴权的权限管理系统,其特征在于,所述资源为被限制访问的资源,由应用自行定义;所述操作为对资源进行的操作;所述角色为系统的内置角色或是应用自定义的角色。3.根据权利要求2所述的基于注解实现的组合鉴权的权限管理系统,其特征在于,所述操作包括查看、添加、修改及删除。4.一种基于注解实现的组合鉴权方法,其特征在于,包括以下步骤:S1 应用注册:业务系统要使用权限系统,首先需要进行应用注册,获取应用唯一标识,即应用ID;S2 确权和赋权操作:确认应用具有的基本权限内容,为用户设置操作资源的权限;S3 引入权限SDK:在业务系统中引入权限系统提供的权限SDK,通过权限SDK中提供的基于注解的组合鉴权方法进行用户鉴权;S4...

【专利技术属性】
技术研发人员:张春飞谢水庚贺一珊刘强刘明
申请(专利权)人:北京航天云路有限公司
类型:发明
国别省市:

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

1