CN110781505A - 系统构建方法及装置、检索方法及装置、介质和设备 - Google Patents

系统构建方法及装置、检索方法及装置、介质和设备 Download PDF

Info

Publication number
CN110781505A
CN110781505A CN201910962968.5A CN201910962968A CN110781505A CN 110781505 A CN110781505 A CN 110781505A CN 201910962968 A CN201910962968 A CN 201910962968A CN 110781505 A CN110781505 A CN 110781505A
Authority
CN
China
Prior art keywords
target
authority
role
control system
access control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910962968.5A
Other languages
English (en)
Other versions
CN110781505B (zh
Inventor
王磊
王晓川
张�荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Yiyi Yunda Data Technology Co Ltd
Nanjing Medical Jiyun Medical Data Research Institute Co Ltd
Original Assignee
Nanjing Yiyi Yunda Data Technology Co Ltd
Nanjing Medical Jiyun Medical Data Research Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Yiyi Yunda Data Technology Co Ltd, Nanjing Medical Jiyun Medical Data Research Institute Co Ltd filed Critical Nanjing Yiyi Yunda Data Technology Co Ltd
Priority to CN201910962968.5A priority Critical patent/CN110781505B/zh
Publication of CN110781505A publication Critical patent/CN110781505A/zh
Application granted granted Critical
Publication of CN110781505B publication Critical patent/CN110781505B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种权限访问控制系统的构建方法及装置、权限访问的检索方法及装置、计算机可读介质和电子设备,涉及计算机技术领域。该权限访问控制系统的构建方法包括:获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到上述目标权限点对应的组份集;将上述组份集中的组份作为节点建立前缀树;获取角色列表,并根据目标角色的权限标识,将上述目标角色添加至上述前缀树的目标节点中,得到权限访问控制系统。本技术方案有利于权限点或角色的灵活配置以及提升可扩展性。

Description

系统构建方法及装置、检索方法及装置、介质和设备
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种权限访问控制系统的构建方法及装置、权限访问的检索方法及装置、计算机可读介质和电子设备。
背景技术
权限访问控制,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。如为某个API的设置权限后,只有被授权的用户才能对上述API具有访问权限。具体的,针对基于角色的访问控制(Role-Based Access Control,简称:RBAC),Java语言的实现方案有Spring Security,可以与较为流行的web应用框架Spring很方便的集成。如,Spring Security能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。
具体的,Spring Security支持动态配置,具体是在代码或者XML中约定好,通常是对具体的URL或者URL Pattern跟角色进行绑定,如:<security:intercept-url pattern="/secure/**"access="hasRole('ROLE_USER')or hasRole('ROLE_ADMIN')"/>。当新增多个不同的URL或者URL Pattern时,则需配置多个条目跟对应的角色绑定。
然而,相关技术提供的Spring Security框架过于沉重,如果要实现权限配置的外部持久化的灵活配置,对应的实现十分繁琐,配置相对复杂。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种权限访问控制系统的构建方法、权限访问控制系统的构建装置、权限访问的检索方法、权限访问的检索装置、计算机可读介质及电子设备,进而至少在一定程度上提升权限点或角色的配置的灵活性。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供了一种权限访问控制系统的构建方法,该方法包括:
获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到上述目标权限点对应的组份集;
将上述组份集中的组份作为节点建立前缀树;
获取角色列表,并根据目标角色的权限标识,将上述目标角色添加至上述前缀树的目标节点中,得到权限访问控制系统。
在本公开的一种实施例中,基于前述方案,上述组份集包括:头组份、中间组份和尾组份;
上述将上述组份集中的组份作为节点建立前缀树,包括:
以上述头组份作为上述前缀树的根节点;
以上述中间组份和上述尾组份作为上述前缀树的子节点;
在上述尾组份所在的子节点中设置结束标识,并在设置有上述结束标识的子节点中添加上述资源地址信息对应的操作方法。
在本公开的一种实施例中,基于前述方案,上述根据目标角色的权限标识,将上述目标角色添加至上述前缀树的目标节点中,包括:
根据上述目标角色的权限标识确定对应的目标结束标识;
确定上述目标结束标识所在的子节点为目标节点,将上述目标角色添加至上述前缀树的目标节点中。
在本公开的一种实施例中,基于前述方案,上述将上述组份集中的组份作为节点建立前缀树,包括:
对于组份内容为变量的变量组份,以预设标识符作为上述变量组份对应的变量节点。
在本公开的一种实施例中,基于前述方案,上述权限访问控制系统的构建方法还包括:
获取目标权限的权限标识、获取资源地址信息以及获取操作方法;
根据上述权限标识、上述资源地址信息以及上述操作方法构建关于上述目标权限的数据结构,得到上述权限列表。
在本公开的一种实施例中,基于前述方案,上述获取资源地址信息,包括:
若上述资源地址信息包含变量,则通过预设标识符替换上述变量得到替换后的资源地址信息。
在本公开的一种实施例中,基于前述方案,上述权限访问控制系统的构建方法还包括:
获取目标角色的角色标识,以及上述目标角色所调用的权限标识;
根据上述角色标识、上述目标角色所调用的权限标识构建关于上述目标角色的数据结构,得到上述角色列表。
根据本公开实施例的第二方面,提供了一种权限访问的检索方法,该方法包括:
获取待查询角色的角色标识,以及获取待查询的目标资源地址信息和目标操作方法;
拆分上述目标资源地址信息得到多个待查询组份;
根据上述多个待查询组份遍历权限访问控制系统以确定上述待查询角色的访问权限,其中,上述权限访问控制系统是根据上述第一方面中任意一种技术方案构建而成的。
在本公开的一种实施例中,基于前述方案,上述获取待查询的目标资源地址信息,包括:
若上述目标资源地址信息包含变量,则通过预设标识符替换上述变量得到替换后的目标资源地址信息。
根据本公开实施例的第三方面,提供了一种权限访问控制系统的构建装置,该装置包括:
组份集获取模块,用于:获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到上述目标权限点对应的组份集;
前缀树建立模块,用于:将上述组份集中的组份作为节点建立前缀树;
权限访问控制系统确定模块,用于:获取角色列表,并根据目标角色的权限标识,将上述目标角色添加至上述前缀树的目标节点中,得到权限访问控制系统。
根据本公开实施例的第四方面,提供了一种权限访问的检索装置,该装置包括:
待查询信息获取模块,用于:获取待查询角色的角色标识,以及获取待查询的目标资源地址信息和目标操作方法;
组份拆分模块,用于:拆分上述目标资源地址信息得到多个待查询组份;
访问权限确定模块,用于:根据上述多个待查询组份遍历权限访问控制系统以确定上述待查询角色的访问权限,其中,上述权限访问控制系统是根据上述第一方面中任意一种方案构建而成的。
根据本公开实施例的第五方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例第一方面任意一种技术方案所述的权限访问控制系统的构建方法;
以及,实现如上述实施例第二方面所述的权限访问的检索方法。
根据本公开实施例的第六方面,提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例第一方面任意一种技术方案所述的权限访问控制系统的构建方法;
以及,实现如上述实施例第二方面所述的权限访问的检索方法。
本公开实施例提供的技术方案可以包括以下有益效果:
在本公开的一些实施例中,获取权限点列表以及角色列表,并拆分目标权限点的资源地址信息为多个组份,得到上述目标权限点对应的组份集,以进一步地将上述组份集中的组份作为节点建立前缀树,然后,根据目标角色的权限标识,将上述目标角色添加至上述前缀树的目标节点中,得到权限访问控制系统。
一方面,本技术方案通过将权限点的资源地址信息以前缀树的节点的形式进行表示,以及将各个角色的权限标识添加至上述前缀树的目标节点中,有利于权限点或角色的灵活配置以及提升可扩展性。如,对于待新增权限点,需要设置该权限实现只给部分角色调用时,只需将该权限点的资源地址信息表示为原有的权限访问控制系统中,以及将相应的角色添加至相关节点即可,上述添加操作对已有的权限配置没有任何影响。
另一方面,本技术方案通过遍历上述前缀树的方式来实现对待查询角色的权限检索,有利于提升检索速度,节省检索时间,提升用户的使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出本公开示例性实施例中用于实现权限访问控制系统的构建方法或权限访问的检索方法的系统架构示意图;
图2示出了根据一实施例的基于角色的访问控制模型的原理示意图;
图3示出了根据本公开的一实施例的权限访问控制系统的构建方法的流程示意图;
图4示出了根据本公开一实施例的前缀树的建立方法的流程示意图;
图5示出了根据本公开另一实施例的前缀树的建立方法的流程示意图;
图6示出了根据本公开的一实施例的权限访问的检索方法的流程示意图;
图7示出了根据本公开的一实施例的权限访问控制系统的构建装置的结构示意图;
图8示出了根据本公开的一实施例的权限访问的检索装置的结构示意图;
图9示出本公开示例性实施例中计算机存储介质的结构示意图;以及,
图10示出本公开示例性实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本示例实施方式中首先提供了一种用于实现权限访问控制系统的构建方法的系统架构,可以应用于各种数据处理场景。参考图1所示,该系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送请求指令等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如图片处理应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如获取用户利用终端设备101、102、103输入的权限点列表,以及拆分目标权限点的资源地址信息为多个组份,得到所述目标权限点对应的组份集(仅为示例)。服务器105可以将所述组份集中的组份作为节点建立前缀树(仅为示例)。服务器105从用户利用终端设备101、102、103获取角色列表,并根据目标角色的权限标识,将所述目标角色添加至所述前缀树的目标节点中,得到权限访问控制系统。
图2示出了根据一实施例的RBAC模型的原理示意200。参考图2,用户USER的信息表21与角色ROLE的信息表22,通过用户-角色关联表212进行关联。也就是说,某用户可以通过其用户名(如:“VACHAR2”)登录系统,系统根据上述用户-角色关联表212确定与上述用户关联的角色。
进一步地,继续参考图2,角色ROLE的信息表22与权限PREVILEGE的信息表23,通过角色-权限关联表223进行关联。也就是说,上述用户可以通过其用户名(如:“VACHAR2”)登录系统,且系统根据上述用户-角色关联表212确定与上述用户关联的角色之后,系统根据上述角色-权限关联表223确定与上述角色关联的权限。
从而,确定上述用户在该系统中被关联有哪些权限,或者分析该用户是否具备某一权限。
其中,上述RBAC权限管理的过程可以抽象概括为:判断【Who是否可以对What进行How的访问操作(Operator)】这个逻辑表达式的值是否为True的求解过程。即,将权限问题转换为Who、What、How的问题。
另外,RBAC支持公认的安全原则:最小特权原则、责任分离原则和数据抽象原则。具体的:
最小特权原则得到支持,是因为在RBAC模型中可以通过限制分配给角色权限的多少和大小来实现,分配给与某用户对应的角色的权限只要不超过该用户完成其任务的需要就可以了。
责任分离原则的实现,是因为在RBAC模型中可以通过在完成敏感任务过程中分配两个责任上互相约束的两个角色来实现,例如在清查账目时,只需要设置财务管理员和会计两个角色参加就可以了。
数据抽象原则是借助于抽象许可权这样的概念实现的,如在账目管理活动中,可以使用信用、借方等抽象许可权,而不是使用操作系统提供的读、写、执行等具体的许可权。但RBAC并不强迫实现这些原则,安全管理员可以允许配置RBAC模型使它不支持这些原则。因此,RBAC支持数据抽象的程度与RBAC模型的实现细节有关。
相关技术中,针对上述RBAC,Java语言的实现方案还有Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。其中,Spring Security和Shiro都支持Ant模式的URL路径匹配,均采用第一次匹配优先的方式,即根据配置的顺序从头开始遍历直到找到第一个匹配的URL模式对应的拦截器链。
然而,相关技术提供的两个框架对于多个URL匹配规则都是采用顺序遍历的方式来查找匹配项,匹配到才停止,因此性能上会随着配置规则的增多而下降,另外不支持最大匹配即精准度优先的匹配原则。
同时,Spring Security在权限检查是对于URL的输入需要依赖于Web应用上下文,即基于必须位于Http Request请求中才能获取Rest API的各项参数,这样的话难以包装为独立的轻量级的微服务为其他的业务提供权限管理功能。
针对相关技术中所存在的上述一个或多个问题,本技术方案提供了一种权限访问控制系统的构建方法及装置,计算机存储介质和电子设备。以下先对权限访问控制系统的构建方法进行说明:
图3示出了根据本公开的实施例的权限访问控制系统的构建方法的流程示意图。本实施例提供的权限访问控制系统的构建方法,至少在一定程度上克服现有技术中存在的上述问题。
其中,本实施例提供的权限访问控制系统的构建方法的执行主体可以是具有计算处理功能的设备,比如服务器等。
参考图3,本实施例提供的权限访问控制系统的构建方法包括:
步骤S310,获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到所述目标权限点对应的组份集;
步骤S320,将所述组份集中的组份作为节点建立前缀树;以及,
步骤S330,获取角色列表,并根据目标角色的权限标识,将所述目标角色添加至所述前缀树的目标节点中,得到权限访问控制系统。
在图3所示实施例提供的技术方案中,一方面,通过将权限点的资源地址信息以前缀树的节点的形式进行表示,以及将各个角色的权限标识添加至上述前缀树的目标节点中,有利于权限点或角色的灵活配置以及提升可扩展性。如,对于待新增权限点,需要设置该权限实现只给部分角色调用时,只需将该权限点的资源地址信息表示为原有的权限访问控制系统中,以及将相应的角色添加至相关节点即可,上述添加操作对已有的权限配置没有任何影响。
另一方面,该实施例提供的技术方案通过遍历上述前缀树的方式来实现对待查询角色的权限检索,有利于提升检索速度,节省检索时间,提升用户的使用体验。同时,在该权限检查过程中,对于URL的输入无需依赖于Web应用上下文。可见,该实施例提供的技术方案提供的权限访问控制系统,从而能够独立的权限服务模块,作为功能上高内聚的微服务模块对外提供服务。而作为微服务模块,在业务需要的情况如并发访问量增加或者更多模块需要调用,可以很容易地实现水平扩容。并且,相较于相关技术,作为微服务模块,该权限访问控制系统更有效地利用计算资源。
其中,微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
以下对图3中所示权限访问控制系统的构建方法实施例的技术方案的各个步骤的实现细节进行详细阐述:
该技术方案中所涉及的权限访问控制系统是对REST风格API的操作权限的控制与管理。
其中,表述性状态转移(Representational State Transfer,简称:REST)为一种软件架构风格。它是一种针对网络应用的设计和开发方式,有利于降低开发的复杂性,提高系统的可伸缩性。具体的:REST风格包含统一资源标识符(Uniform Resource Identifier,简称:URI)和HTTP Method;前者URI定义了资源,后者HTTP Method定义对资源的操作。
示例性的,本技术方案中,上述权限点的资源地址信息为标识REST风格API(互联网资源)的字符串URI,以及,REST风格API的操作权限包括:对API的新建(POST)、对API的修改(PUT/PATCH)、对API的删除(DELETE),以及对API的查询(GET)。
在示例性的实施例中,在执行步骤S210获取权限点列表之前,本技术方案还包括:获取目标权限的权限标识(id)、获取资源地址信息(URI)以及获取操作方法(HTTPMethod);以及,根据上述权限标识、上述资源地址信息以及上述操作方法构建关于所述目标权限的数据结构,得到所述权限列表。
示例性的,对于某一系统的所有权限点中的任意一个作为上述目标权限点。具体的,上述目标权限点的数据结构应包括以下几方面信息:
REST风格的API权限点的URI和HTTP Method;
该目标权限点的标识信息(id),以用来作为此权限点的唯一标识,还可以用于被角色的引用;以及,
该目标权限点的字段类型(type),以区分是该权限点的数据结构是系统内置还是用户创建的,从而满足日后可以让用户自定义新的权限点。
在示例性的实施例中,获取上述信息之后,权限标识为"project.create"的权限点的数据结构可以表示为:
Figure BDA0002229558210000101
Figure BDA0002229558210000111
参考上述权限点的数据结构,可以确定某一系统所有权限点的数据机构,从而确定权限列表。
需要注意的是,若上述URI中包含变量,则这里用预设标识符(如“*”号)来表示它的值是可变的,以用于匹配REST风格的URI中存在变量的情况。具体的,对于组份内容为变量的变量组份,在将所述组份集中的组份作为节点建立前缀树的具体实施方式中,则以预设标识符作为所述变量组份对应的变量节点。本实施例通过预设标识符*的方式进行权限检索,有利于实现最大匹配即精准度优先的匹配原则。
继续参考图3,在示例性的实施例中,在步骤S310中,获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到所述目标权限点对应的组份集。
在示例性的实施例中,为了加快检索,本技术方案中将API权限点信息以及角色信息保存成前缀树的结构。其中,其中,上述前缀树也称字典树,是一种数据结构,具体可以应用于字符串查找、前缀匹配等。例如,前缀树结果广泛应用于语句的自动补齐,如搜索引擎上根据以往用户的搜索词构建前缀树,当新用户输入的时候,自动补齐和提示热门搜索语句,提高用户体验。
本实施例中,先介绍为了将API权限点信息保存为前缀树结构,在步骤S310中,先将每个API权限点的资源地址信息拆分为多个组份,得到上述该API权限点对应的组份集。示例性的,可以采用另一预设标识符(如“/”)来拆分各个API权限点的URI,得到各个API权限点对应的组份集。
在示例性的实施例中,每个组份集以上述标识符“/”为始。并且上述组份集包括:头组份、中间组份和尾组份。例如,{/projects/*/member},则将为始的“/”作为上述头组份,将组份集中最后的组份(member)作为尾组份。并将头组份和尾组份之间的其他组份称为中间组份。
继续参考图3,在示例性的实施例中,获取各个API权限点分别对应的组份集之后,在步骤S320中,将所述组份集中的组份作为节点建立前缀树。
在示例性的实施例中,图4和图5分别示出了根据本公开实施例的前缀树的建立方法的流程示意图。以下结合图4和图5对上述步骤S320的具体实施方式进行解释说明:
参考图4,该图所示实施例包括以下步骤S410和步骤S420。
在步骤S410中,以所述头组份作为所述前缀树的根节点。
在示例性的实施例中,参考图5,由于各个API权限点对应的权限集均以“/”为头组份,在可以将头组份“/”作为前缀树的根节点500。
在步骤S420中,以所述中间组份和所述尾组份作为所述前缀树的子节点。
在示例性的实施例中,对于任一个API权限点对应的组份集中的任一个中间组份或尾组份均可以作为前缀树结构中的一个节点。参考图5,对于某API权限点对应的组份集{/projects/*/member},其中间组份“projects”作为前缀树结构的子节点511,其中间组份“/*”作为前缀树结构的子节点512,其尾组份“/member”作为前缀树结构的子节点513。
在步骤S430中,在所述尾组份所在的子节点中设置结束标识,并在设置有所述结束标识的子节点中添加所述资源地址信息对应的操作方法。
在示例性的实施例中,对于子节点(isleaf=true)表示它可以代表一个完整的URI(也就是说,该节点对应的组份为一个尾组份)。例如:“isleaf=true”可以作为上述子节点513关于组份集{/projects/*/member}的结束标识,其中,对于包含结束标识“isleaf=true”的子节点可以称作“叶子节点”。有利于“isleaf=true”可以作为上述子节点512关于组份集{/projects/*}的结束标识。
同时,示例性的,对于子节点(isleaf=false)表示它不可以代表一个完整的URI。例如:关于某一API权限点的组份集{/management/*/*},其中,子节点532(其中)对应的组份集为{/management/*},其不可以代表一个完整的URI,则通过预设标识符isleaf=false来标识。
在示例性的实施例中,对于包含上述结束标识isleaf=true的叶子节点,在该节点中会保存一个字典,以用于标识对该资源的操作方法以及可以调用该资源的角色或角色列表。示例性的,参考图5,子节点522对应的组份集为{/users/resetpwd},首先其可以代表一个完整的URI,并通过上述结束标识符isleaf=true来标识。则该节点中保存的字典为”Post:role1”,表示只有role1可以调用这个API的POST方法。可见,上述字典中,以API权限点的HTTP Method作为Key,并以可以调用该HTTP Method的角色作为Value。本实施例中,引用字典的方式表示HTTP Method以及具备对应权限的角色,有利于数据结构的扩展。例如,上述组份集为{/users/resetpwd}中的操作Post的调用权限的角色增加了role2,则之间可以将上述子节点522中的字典更新为”Post:role1,role2”。示例性的,通过上述目标权限点对应的组份集来构建前缀树的伪代码可以表示为:
Figure BDA0002229558210000131
在示例性的实施例中,在执行步骤S330获取角色列表之前,本技术方案还包括:获取目标角色的角色标识,以及所述目标角色所调用的权限标识;以及,根据所述角色标识、所述目标角色所调用的权限标识构建关于所述目标角色的数据结构,得到所述角色列表。
示例性的,对于可以调用某一系统的上述权限点列表中的任意一个角色作为上述目标角色。具体的,上述目标角色的数据结构应包括以下几方面信息:
目标角色的基本属性,如:标识信息(id),以用来作为此觉得的唯一标识,中文名称"name"等信息;
该目标角色能够调用的权限点集合"permissions",如一个或多个权限点id;以及,
该目标角色的字段类型(type),以区分是该角色的数据结构是系统内置还是用户创建的。
在示例性的实施例中,获取上述信息之后,角色标识为"project_manager"的角色的数据结构可以表示为:
Figure BDA0002229558210000141
可见,上述角色标识为"project_manager"的角色能够调用的权限点标识的集合为:["project.create","project.update","project.delete","project.member.add","project.member.delete","management"]。
在示例性的实施例中,为了缩减权限检索时间,提升系统性能。在涉及系统管理员等全权限的角色的数据结构时(如,角色Root),通过不设置上述其所能够调用的权限点集合"permissions":[]的方式,来缩短权限检索时间,同时,还可以减少构建该权限访问控制系统的配置工作量。该设置相当于在遍历逻辑中设置的shortcut,有利于提升检索效率。示例性的,获取角色Root的相关信息之后,其数据结构可以表示为:
Figure BDA0002229558210000151
参考上述目标角色的数据结构,可以确定某一系统所有角色的数据机构,从而确定角色列表。
继续参考图3,在示例性的实施例中,在步骤S330中,获取角色列表,并根据目标角色的权限标识,将所述目标角色添加至所述前缀树的目标节点中,得到权限访问控制系统。
仍结合图4对上述步骤S330的具体实施方式进行解释说明:根据目标角色的权限标识确定对应的目标结束标识;以及,确定该目标结束标识所在的子节点为目标节点,将所述目标角色添加至上述前缀树的目标节点中。
在示例性的实施例中,根据角色对应的数据结构中其所能够调用的权限点集合"permissions":[]中的权限标识,确定目标结束标识,并将该角色标识添加至上述目标结束标识对应的前缀树节点中。示例性的,参考图5,对于角色role3,可以确定其能够调用的权限点对应的组份集包含{/projects/*/member},则将“role3”添加至包含结束标识的子节点513中。具体的添加方式如前述实施例所述:将上述角色标识“role3”作为字典结构的值Value进行添加。例如,在子节点513中,作为关键词Key“Delete”的值,得到“Delete:role2”。
以此类推,将上述角色列表中的角色标识调价至前述前缀树中,得到权限访问控制系统。
上述实施例提供的权限访问控制系统,通过前缀树结果对权限点信息和角色信息进行存储,通过一次构建并可以实现快速遍历。并且,该存储方式具有可扩展性,从而不会因为新增的权限点而对已有的存储结构造成改变。
在示例性的实施例中,基于前述实施例提供的权限访问控制系统,本技术方案还提供一种权限访问的检索方法。示例性的,图6示出了根据本公开的一实施例的权限访问的检索方法的流程示意图,参考图6,该图所示方法包括:
步骤S610,获取待查询角色的角色标识,以及获取待查询的目标资源地址信息和目标操作方法;
步骤S620,拆分所述目标资源地址信息得到多个待查询组份;以及,
步骤S630,根据所述多个待查询组份遍历权限访问控制系统以确定所述待查询角色的访问权限。
在示例性的实施例中,在步骤S610中获取待查询的目标资源地址信息(即目标URI)以及目标操作方法(即目标HTTP Method)。其中,若检测到资源地址信息包含变量,由于上述权限访问控制系统中的变量是以“*”进行表示的,则通过预设标识符(“*”)替换上述资源地址信息包含的变量得到替换后的目标资源地址信息。
本实施例通过预设标识符*的方式进行权限检索,有利于实现最大匹配即精准度优先的匹配原则。
在示例性的实施例中,在步骤S620中拆分上述目标资源地址信息得到多个待查询组份。由于步骤S620的具体实施方式与步骤S320的具体实施方式相同,在此不再赘述。
在示例性的实施例中,在步骤S630中,根据上述多个待查询组份遍历上述权限访问控制系统以确定该待查询角色的访问权限。
示例性的,根据待查询参数:拆分后的目标URI、目标HTTP Method,以及当前用户的角色信息(id),遍历上述权限访问控制系统。其中,该遍历过程与上述权限访问控制系统的构建过程类似:从根节点出发,根据拆分后的目标URI在上述前缀树中确定对应的子节点,然后根据该子节点中的目标HTTP Method对应的角色列表中是否包含当前角色。
具体的,若该子节点中的目标HTTP Method对应的角色列表中包含当前的角色,则说明当前角色具有上述目标URI和目标HTTP Method的权限;示例性的,参考图5,若上述目标URI和目标HTTP Method为子节点522’中的Post操作方法,且当前的角色为role1,则可以确定当前角色role1具有子节点522’中的Post操作方法的权限。相反的,若该子节点中的目标HTTP Method对应的角色列表中不包含当前的角色,则说明当前角色不具有上述目标URI和目标HTTP Method的权限。
示例性的,参考图5,若上述目标URI和目标HTTP Method为子节点522’中的Post操作方法,且当前的角色为role2,则可以确定当前角色role2不具有子节点522’中的Post操作方法的权限。示例性的,本方法能够对REST风格的API根据目标URI和目标Http Method,对权限进行判断返回是否可以调用的布尔返回值。
在示例性的实施例中,在通过拆分后的目标URI(即待查询组份)来上述遍历前缀树中的子节点的过程中,可能出现以下情况:
1)、对于当前的待查询组份,若返回的子节点为空(即,有可能是没有与当前待查询组份匹配的子节点),则可能当前待查询组份为变量,则需进一步查询“*”的子节点。本实施例通过预设标识符*的方式进行权限检索,有利于实现最大匹配即精准度优先的匹配原则。
2)、对于当前的待查询组份,若查询查询“*”的子节点之后返回的子节点仍为空,则说明当前角色没有被配置对应的权限。该情况位遍历的时候当发现子节点不存在,则判断为此API没有配置,则立即返回。相当于在遍历逻辑中设置的shortcut,有利于提升检索效率。
3)、对于当前的待查询组份,若返回的不是叶子节点(即,该子节点的标识符为“isleaf=false”),则说明当前角色没有被配置对应的权限。
4)、在上述三种情况之外,若当前角色的权限在对应method内的角色列表内,则说明当前角色已经被配置对应的权限。
示例性的,对应的伪代码如下:
从上述实施例提供的技术方案可以看出,确定当前角色是否具有访问权限的过程中,仅需要目标URI和目标HTTP Method信息,而无需像Spring Security的权限检查过程中所依赖的Web应用上下文。因此,本技术方案中的权限访问控制系统可以作为微服务模块,从而可以进行定制化的业务代码和数据库层面的性能调优来增加单个节点的性能。同时,本技术方案的遍历过程的复杂度取决于待判断API的URI的组份个数,与已有权限点的多少无关。这正是前缀树的优势所在,只需要从根往下检索相关的分支,其他的分支都被自然忽略掉了,从而大大提升检索效率,提升用户的检索体验。
本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由处理器,包含中央处理器(central processing unit,CPU)和图形处理器(GraphicsProcessing Unit GPU)执行的计算机程序。例如,通过CPU或GPU实现获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到所述目标权限点对应的组份集,通过CPU或GPU将所述组份集中的组份作为节点建立前缀树,以及,通过CPU或GPU获取角色列表,并根据目标角色的权限标识,将所述目标角色添加至所述前缀树的目标节点中,得到权限访问控制系统。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
以下介绍本公开的权限访问控制系统的构建装置实施例,可以用于执行本公开图2至图5所示实施例提供的权限访问控制系统的构建方法。
图7示出了根据本公开的实施例的权限访问控制系统的构建装置的结构示意图,参考图7,本实施例提供的权限访问控制系统的构建装置700,包括:组份集获取模块701、前缀树建立模块702和权限访问控制系统确定模块703。
其中,上述组份集获取模块701,用于:获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到上述目标权限点对应的组份集;
上述前缀树建立模块702,用于:将上述组份集中的组份作为节点建立前缀树;
上述权限访问控制系统确定模块703,用于:获取角色列表,并根据目标角色的权限标识,将上述目标角色添加至上述前缀树的目标节点中,得到权限访问控制系统。
在本公开的一种实施例中,基于前述方案,上述组份集包括:头组份、中间组份和尾组份;
上述前缀树建立模块702,具体用于:以上述头组份作为上述前缀树的根节点;以上述中间组份和上述尾组份作为上述前缀树的子节点;以及,在上述尾组份所在的子节点中设置结束标识,并在设置有上述结束标识的子节点中添加上述资源地址信息对应的操作方法。
在本公开的一种实施例中,基于前述方案,上述权限访问控制系统确定模块703,具体用于:根据上述目标角色的权限标识确定对应的目标结束标识;以及,确定上述目标结束标识所在的子节点为目标节点,将上述目标角色添加至上述前缀树的目标节点中。
在本公开的一种实施例中,基于前述方案,上述前缀树建立模块702,还具体用于:对于组份内容为变量的变量组份,以预设标识符作为上述变量组份对应的变量节点。
在本公开的一种实施例中,基于前述方案,上述权限访问控制系统的构建装置700还包括:权限列表构建模块。
其中,上述权限列表构建模块,包括:第一信息获取子模块和第一列表确定子模块。
上述第一信息获取子模块,用于:获取目标权限的权限标识、获取资源地址信息以及获取操作方法;以及,
上述第一列表确定子模块,用于:根据上述权限标识、上述资源地址信息以及上述操作方法构建关于上述目标权限的数据结构,得到上述权限列表。
在本公开的一种实施例中,基于前述方案,上述信息获取子模块,具体用于:若上述资源地址信息包含变量,则通过预设标识符替换上述变量得到替换后的资源地址信息。
在本公开的一种实施例中,基于前述方案,上述权限访问控制系统的构建装置700还包括:角色列表构建模块。
其中,上述角色列表构建模块,包括:第二信息获取子模块和第二列表确定子模块。
上述第二信息获取子模块,用于:获取目标角色的角色标识,以及上述目标角色所调用的权限标识;以及,
上述第二列表确定子模块,用于:根据上述角色标识、上述目标角色所调用的权限标识构建关于上述目标角色的数据结构,得到上述角色列表。
由于本公开的示例性的实施例的权限访问控制系统的构建装置的各个功能模块与上述权限访问控制系统的构建方法的示例实施例的步骤对应,因此对于本公开权限访问控制系统的构建装置实施例中未披露的细节,请参照本公开上述的权限访问控制系统的构建方法的实施例。
以下介绍本公开的权限访问的检索装置实施例,可以用于执行本公开图6所示实施例提供的权限访问的检索方法。
图8示出了根据本公开的实施例的权限访问的检索装置的结构示意图,参考图8,本实施例提供的权限访问的检索装置800,包括:待查询信息获取模块801、组份拆分模块802和访问权限确定模块803。
其中,上述待查询信息获取模块801,用于:获取待查询角色的角色标识,以及获取待查询的目标资源地址信息和目标操作方法;
上述组份拆分模块802,用于:拆分上述目标资源地址信息得到多个待查询组份;
上述访问权限确定模块803,用于:根据上述多个待查询组份遍历权限访问控制系统以确定上述待查询角色的访问权限。
其中,上权限访问控制系统是根据图2至图5中任意一图上述的方法实施例构建得到的。
在本公开的一种实施例中,基于前述方案,上述待查询信息获取模块801,具体用于:若上述目标资源地址信息包含变量,则通过预设标识符替换上述变量得到替换后的目标资源地址信息。
由于本公开的示例性的实施例的权限访问的检索装置的各个功能模块与上述权限访问的检索方法的示例实施例的步骤对应,因此对于本公开权限访问的检索装置实施例中未披露的细节,请参照本公开上述的权限访问的检索方法的实施例。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当上述程序产品在终端设备上运行时,上述程序代码用于使上述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图9所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(erasable programmable read-only memory,EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(Local AreaNetwork,LAN)或广域网(Wide Area Network,WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本公开的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030。
其中,上述存储单元存储有程序代码,上述程序代码可以被上述处理单元1010执行,使得上述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,上述处理单元1010可以执行如图3中所示的:步骤S310,获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到所述目标权限点对应的组份集;步骤S320,将所述组份集中的组份作为节点建立前缀树;以及,步骤S330,获取角色列表,并根据目标角色的权限标识,将所述目标角色添加至所述前缀树的目标节点中,得到权限访问控制系统。
示例性的,上述处理单元1010还可以执行如图2至图5中任意一图所示的权限访问控制系统的构建方法。示例性的,上述处理单元1010还可以执行如图6所示的访问权限的检索方法。
存储单元1020可以包括易失性存储单元形式的可读介质,例如:随机存取存储单元(Random Access Memory,RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元只读存储器(Read-Only Memory,ROM)10203。
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1070与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (13)

1.一种权限访问控制系统的构建方法,其特征在于,所述方法包括:
获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到所述目标权限点对应的组份集;
将所述组份集中的组份作为节点建立前缀树;
获取角色列表,并根据目标角色的权限标识,将所述目标角色添加至所述前缀树的目标节点中,得到权限访问控制系统。
2.根据权利要求1所述的权限访问控制系统的构建方法,其特征在于,所述组份集包括:头组份、中间组份和尾组份;
所述将所述组份集中的组份作为节点建立前缀树,包括:
以所述头组份作为所述前缀树的根节点;
以所述中间组份和所述尾组份作为所述前缀树的子节点;
在所述尾组份所在的子节点中设置结束标识,并在设置有所述结束标识的子节点中添加所述资源地址信息对应的操作方法。
3.根据权利要求2所述的权限访问控制系统的构建方法,其特征在于,所述根据目标角色的权限标识,将所述目标角色添加至所述前缀树的目标节点中,包括:
根据所述目标角色的权限标识确定对应的目标结束标识;
确定所述目标结束标识所在的子节点为目标节点,将所述目标角色添加至所述前缀树的目标节点中。
4.根据权利要求1至3中任意一项所述的权限访问控制系统的构建方法,其特征在于,所述将所述组份集中的组份作为节点建立前缀树,包括:
对于组份内容为变量的变量组份,以预设标识符作为所述变量组份对应的变量节点。
5.根据权利要求1所述的权限访问控制系统的构建方法,其特征在于,所述方法还包括:
获取目标权限的权限标识、获取资源地址信息以及获取操作方法;
根据所述权限标识、所述资源地址信息以及所述操作方法构建关于所述目标权限的数据结构,得到所述权限列表。
6.根据权利要求5所述的权限访问控制系统的构建方法,其特征在于,所述获取资源地址信息,包括:
若所述资源地址信息包含变量,则通过预设标识符替换所述变量得到替换后的资源地址信息。
7.根据权利要求1所述的权限访问控制系统的构建方法,其特征在于,所述方法还包括:
获取目标角色的角色标识,以及所述目标角色所调用的权限标识;
根据所述角色标识、所述目标角色所调用的权限标识构建关于所述目标角色的数据结构,得到所述角色列表。
8.一种权限访问的检索方法,其特征在于,所述方法包括:
获取待查询角色的角色标识,以及获取待查询的目标资源地址信息和目标操作方法;
拆分所述目标资源地址信息得到多个待查询组份;
根据所述多个待查询组份遍历权限访问控制系统以确定所述待查询角色的访问权限,其中,所述权限访问控制系统是根据权利要求1至7中任意一项构建而成的。
9.根据权利要求8所述的权限访问的检索方法,其特征在于,所述获取待查询的目标资源地址信息,包括:
若所述目标资源地址信息包含变量,则通过预设标识符替换所述变量得到替换后的目标资源地址信息。
10.一种权限访问控制系统的构建装置,其特征在于,所述装置包括:
组份集获取模块,用于:获取权限点列表,并拆分目标权限点的资源地址信息为多个组份,得到所述目标权限点对应的组份集;
前缀树建立模块,用于:将所述组份集中的组份作为节点建立前缀树;
权限访问控制系统确定模块,用于:获取角色列表,并根据目标角色的权限标识,将所述目标角色添加至所述前缀树的目标节点中,得到权限访问控制系统。
11.一种权限访问的检索装置,其特征在于,所述装置包括:
待查询信息获取模块,用于:获取待查询角色的角色标识,以及获取待查询的目标资源地址信息和目标操作方法;
组份拆分模块,用于:拆分所述目标资源地址信息得到多个待查询组份;
访问权限确定模块,用于:根据所述多个待查询组份遍历权限访问控制系统以确定所述待查询角色的访问权限,其中,所述权限访问控制系统是根据权利要求1至7中任意一项构建而成的。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的权限访问控制系统的构建方法;
以及,实现如权利要求8或9所述的权限访问的检索方法。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的权限访问控制系统的构建方法;
以及,实现如权利要求8或9所述的权限访问的检索方法。
CN201910962968.5A 2019-10-11 2019-10-11 系统构建方法及装置、检索方法及装置、介质和设备 Active CN110781505B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910962968.5A CN110781505B (zh) 2019-10-11 2019-10-11 系统构建方法及装置、检索方法及装置、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910962968.5A CN110781505B (zh) 2019-10-11 2019-10-11 系统构建方法及装置、检索方法及装置、介质和设备

Publications (2)

Publication Number Publication Date
CN110781505A true CN110781505A (zh) 2020-02-11
CN110781505B CN110781505B (zh) 2020-09-25

Family

ID=69385120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910962968.5A Active CN110781505B (zh) 2019-10-11 2019-10-11 系统构建方法及装置、检索方法及装置、介质和设备

Country Status (1)

Country Link
CN (1) CN110781505B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182525A (zh) * 2020-09-15 2021-01-05 南京国电南自电网自动化有限公司 一种基于属性管控的rbac模型权限管理方法
CN112580070A (zh) * 2020-12-04 2021-03-30 河南大学 一种基于前缀字典树的rbac角色分层辅助构建方法
CN112905918A (zh) * 2021-03-06 2021-06-04 上海数依数据科技有限公司 一种数据服务汇聚引擎及其管理方法
CN113472794A (zh) * 2021-07-05 2021-10-01 福州数据技术研究院有限公司 基于微服务的多应用系统权限统一管理方法和计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691171B1 (en) * 2002-02-01 2004-02-10 Micrel, Inc. Method and system for address lookup in data communication
CN101593260A (zh) * 2009-07-03 2009-12-02 杭州华三通信技术有限公司 一种管理系统权限的应用方法和装置
CN101952830A (zh) * 2007-10-05 2011-01-19 通用电气智能平台有限公司 用于用户授权的方法和系统
CN107451486A (zh) * 2017-06-30 2017-12-08 华为技术有限公司 一种文件系统的权限设置方法及装置
CN107888614A (zh) * 2017-12-01 2018-04-06 大猫网络科技(北京)股份有限公司 一种用户权限判断方法及装置
CN109286579A (zh) * 2017-07-21 2019-01-29 中兴通讯股份有限公司 一种用户资源的分配方法、装置及计算机可读存储介质
CN110222524A (zh) * 2019-05-07 2019-09-10 深圳壹账通智能科技有限公司 统一资源定位符请求的权限校验方法、装置及终端设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691171B1 (en) * 2002-02-01 2004-02-10 Micrel, Inc. Method and system for address lookup in data communication
CN101952830A (zh) * 2007-10-05 2011-01-19 通用电气智能平台有限公司 用于用户授权的方法和系统
CN101593260A (zh) * 2009-07-03 2009-12-02 杭州华三通信技术有限公司 一种管理系统权限的应用方法和装置
CN107451486A (zh) * 2017-06-30 2017-12-08 华为技术有限公司 一种文件系统的权限设置方法及装置
CN109286579A (zh) * 2017-07-21 2019-01-29 中兴通讯股份有限公司 一种用户资源的分配方法、装置及计算机可读存储介质
CN107888614A (zh) * 2017-12-01 2018-04-06 大猫网络科技(北京)股份有限公司 一种用户权限判断方法及装置
CN110222524A (zh) * 2019-05-07 2019-09-10 深圳壹账通智能科技有限公司 统一资源定位符请求的权限校验方法、装置及终端设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李南妮等: "一种基于树型结构的B/S系统权限控制方法", 《计算机应用研究》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182525A (zh) * 2020-09-15 2021-01-05 南京国电南自电网自动化有限公司 一种基于属性管控的rbac模型权限管理方法
CN112580070A (zh) * 2020-12-04 2021-03-30 河南大学 一种基于前缀字典树的rbac角色分层辅助构建方法
CN112580070B (zh) * 2020-12-04 2022-09-16 河南大学 一种基于前缀字典树的rbac角色分层辅助构建方法
CN112905918A (zh) * 2021-03-06 2021-06-04 上海数依数据科技有限公司 一种数据服务汇聚引擎及其管理方法
CN113472794A (zh) * 2021-07-05 2021-10-01 福州数据技术研究院有限公司 基于微服务的多应用系统权限统一管理方法和计算机可读存储介质
CN113472794B (zh) * 2021-07-05 2023-08-15 福州数据技术研究院有限公司 基于微服务的多应用系统权限统一管理方法和存储介质

Also Published As

Publication number Publication date
CN110781505B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
US10839011B2 (en) Application programing interface document generator
CN110781505B (zh) 系统构建方法及装置、检索方法及装置、介质和设备
US20190163756A1 (en) Hierarchical question answering system
US9122531B2 (en) Resource configuration for a network data processing system
US20180196643A1 (en) Generating web api specification from online documentation
US10656972B2 (en) Managing idempotent operations while interacting with a system of record
US11075868B2 (en) Personal communication data management in multilingual mobile device
US20180196647A1 (en) Application Programming Interface Discovery Using Pattern Recognition
US9876853B2 (en) Storlet workflow optimization leveraging clustered file system placement optimization features
US11275805B2 (en) Dynamically tagging webpages based on critical words
US11882154B2 (en) Template representation of security resources
US20170017380A1 (en) Mobile enabling a web application developed without mobile rendering capabilities
US10776180B1 (en) Expression-based feature toggle in an application programming interface (API)
CN113282591B (zh) 权限过滤方法、装置、计算机设备及存储介质
US10693939B2 (en) Providing modified protocol responses
US11080249B2 (en) Establishing industry ground truth
US11082520B2 (en) Process broker for executing web services in a system of engagement and system of record environments
US10057202B2 (en) Personal communication data management in multilingual mobile device
US10902037B2 (en) Cognitive data curation on an interactive infrastructure management system
US11720554B2 (en) Iterative query expansion for document discovery
US10176000B2 (en) Dynamic assistant for applications based on pattern analysis
US10523591B2 (en) Discovering resource availability across regions
US10922366B2 (en) Self-adaptive web crawling and text extraction
US20170139689A1 (en) Caching method types created from method descriptor strings on a per class loader basis

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant