一种基于过滤器实现的组合鉴权方法及系统技术方案

技术编号:32128292 阅读:15 留言:0更新日期:2022-01-29 19:21
本发明专利技术公开了一种基于过滤器实现的组合鉴权方法及系统,该方法包括:业务系统要使用权限系统,首先需要进行应用注册,获取应用唯一标识;确认应用具有的基本权限内容,为用户设置操作资源的权限;在业务系统中引入权限系统提供的权限SDK,通过权限SDK中提供的基于过滤器方式对请求路径的组合鉴权方法进行用户鉴权;实现权限SDK中的UserConfig接口,并使用@Component自动注入。本发明专利技术的基于过滤器实现的组合鉴权方法及系统,鉴权功能可移植,可扩展、满足业务系统的多元鉴权需求,为业务系统提供了方便统一的鉴权方案,解决了平台中多角色多权限的组合鉴权问题。角色多权限的组合鉴权问题。角色多权限的组合鉴权问题。

【技术实现步骤摘要】
一种基于过滤器实现的组合鉴权方法及系统
[0001]

[0002]本专利技术涉及网络通信安全
,具体来说,涉及一种基于过滤器实现的组合鉴权方法及系统。

技术介绍

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

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

技术实现思路

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

权限控制和用户

角色

权限控制两种权限控制模型,方案模型如图1所示。
[0020]如图2所示,一种基于过滤器实现的组合鉴权方法,该方法包括以下步骤:S1 应用注册:业务系统要使用权限系统,首先需要进行应用注册,获取应用唯一标识,即应用ID;S2 确权和赋权操作:确认应用具有的基本权限内容,为用户设置操作资源的权限;S3 引入权限SDK:在业务系统中引入权限系统提供的权限SDK,通过权限SDK中提供的基于过滤器方式对请求路径的组合鉴权方法进行用户鉴权;S4 实现UserConfig接口:开发者需要实现权限SDK中的UserConfig接口,并使用@Component自动注入;UserConfig接口提供了获取应用ID、用户ID、资源所在组ID三个信息,这些信息可以从配置、SESSION、REQUEST中获取,也可以设为某个固定值,同时还提供了默认的获取操作者前缀的方法getUserPrefix和获取权限缓存时间的方法getCacheExpiredTime(),根据实际需要可以重写方法,getUserPrefix方法的值应为数据库定义的subjectId的前缀。
[0021]所述基于过滤器方式对请求路径的组合鉴权方法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于过滤器实现的组合鉴权方法,其特征在于,包括以下步骤:S1 应用注册:业务系统要使用权限系统,首先需要进行应用注册,获取应用唯一标识,即应用ID;S2 确权和赋权操作:确认应用具有的基本权限内容,为用户设置操作资源的权限;S3 引入权限SDK:在业务系统中引入权限系统提供的权限SDK,通过权限SDK中提供的基于过滤器方式对请求路径的组合鉴权方法进行用户鉴权;S4 实现UserConfig接口:实现权限SDK中的UserConfig接口,并使用@Component自动注入,UserConfig接口提供获取应用ID、用户ID、资源所在组ID三个信息,所述信息从配置、SESSION、REQUEST中获取,或设为固定值;UserConfig接口还提供默认的获取操作者前缀的方法和获取权限缓存时间的方法。2.根据权利要求1所述的基于过滤器实现的组合鉴权方法,其特征在于,所述基于过滤器方式对请求路径的组合鉴权方法为:首先要定义权限过滤器,然后配置需要鉴权的请求路径,请求路径支...

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

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

1