CN117828672A - 细粒度动态授权的访问控制与高并发处理方法及装置 - Google Patents
细粒度动态授权的访问控制与高并发处理方法及装置 Download PDFInfo
- Publication number
- CN117828672A CN117828672A CN202410246631.5A CN202410246631A CN117828672A CN 117828672 A CN117828672 A CN 117828672A CN 202410246631 A CN202410246631 A CN 202410246631A CN 117828672 A CN117828672 A CN 117828672A
- Authority
- CN
- China
- Prior art keywords
- information
- access control
- access
- state
- state set
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 85
- 238000011217 control strategy Methods 0.000 claims abstract description 84
- 230000008569 process Effects 0.000 claims description 40
- 230000010365 information processing Effects 0.000 claims description 37
- 230000004044 response Effects 0.000 claims description 22
- 238000013475 authorization Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000002372 labelling Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 34
- 238000012986 modification Methods 0.000 description 12
- 230000004048 modification Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 10
- 230000000903 blocking effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 239000003607 modifier Substances 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及数据处理技术领域,公开了一种细粒度动态授权的访问控制与高并发处理方法及装置,应用于权限控制服务器,其中方法包括:获取待访问信息当前对应的状态集;基于状态集和/或第一信息访问索引生成待访问信息的第二信息查找请求;将第二信息查找请求发送至文件服务器,接收文件服务器返回的目标信息;基于预先构建的访问控制策略库获取目标信息中状态集下各个信息分量对应的访问控制策略,并基于各个信息分量对应的访问控制策略对各个信息分量进行访问控制,和/或访问控制支持高并发访问。本申请提供的方法和装置,能够动态进行访问控制,并支持高并发处理,提高了访问控制的安全性和控制效率。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种细粒度动态授权的访问控制与高并发处理方法及装置。
背景技术
信息中的一些信息分量(例如敏感信息、地址和收件人姓名等)属于个人隐私或存在不同的访问要求,在不同的业务场景以及业务流程下,针对这些信息分量可能存在不同的权限控制需求。传统的访问控制方式大多为静态权限控制,即信息被授予某个访问控制策略后,策略不会随着信息状态、访问人的角色等的变化进行更改。但是,在信息全生命周期的不同阶段,信息分量的权限控制需求会不断变化,传统的静态权限控制已经无法满足灵活性和安全性的要求,因此如何对信息进行动态访问控制成为目前亟需解决的一个问题。
同时,随着用户数量的增加,系统对高并发处理的需求日益显著,因此如何在高并发环境下实现精准的细粒度动态授权以及实时的细粒度权限控制,也是需要解决的一个问题。
发明内容
本申请提供一种细粒度动态授权的访问控制与高并发处理方法及装置,用以解决现有技术中动态访问控制以及高并发请求处理的技术问题。
第一方面,本申请提供了一种细粒度动态授权的访问控制与高并发处理方法,包括:
应用于权限控制服务器,所述方法包括:
获取待访问信息当前对应的状态集;
基于所述状态集和/或第一信息访问索引生成所述待访问信息的第二信息查找请求;
将所述第二信息查找请求发送至文件服务器,接收所述文件服务器返回的目标信息;
基于预先构建的访问控制策略库获取所述目标信息中所述状态集下各个信息分量对应的访问控制策略,并基于各个信息分量对应的访问控制策略对各个信息分量进行访问控制,和/或所述访问控制支持高并发访问;
其中,所述访问控制策略库中包括各个信息分量在各个状态或状态组合下的访问控制策略。
在一些实施例中所述获取所述目标信息中所述状态集下各个信息分量对应的访问控制策略之后,还包括:
基于所述访问控制策略确定当前用户对各个信息分量的访问权限;
基于所述访问权限在所述目标信息中确定第一信息分量和第二信息分量;
将所述目标信息中所述第二信息分量进行信息处理,并将处理后的目标信息发送至客户端;
其中,所述第一信息分量为允许所述当前用户访问的信息分量;所述第二信息分量为限制所述当前用户访问的信息分量。
在一些实施例中,所述访问控制策略库是基于如下步骤进行构建的:
获取待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合;
设置各个访问场景的状态集中各个状态或状态组合的信息访问控制策略;所述信息访问控制策略包括各个信息分量的访问控制策略和各个信息分量组合的访问控制策略;
基于各个访问场景、各个状态或状态组合,以及各个访问控制策略之间的关联关系构建所述访问控制策略库。
在一些实施例中,所述获取待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合,包括:
接收权限控制服务器用户的访问控制策略设置;
响应于所述权限控制服务器用户的访问控制策略设置,确定待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合;
所述权限控制服务器用户的访问控制策略设置的形式包括:基于规则、配置文件、按钮、圈出、勾选、标记、按键、滑轮、菜单、语音、视频、眼神、手势、文字、生物电信号、虚拟现实中的至少一种。
在一些实施例中,构建所述访问控制策略库之后,还包括:
获取所述访问控制策略库中任一状态集中的初始化状态;
分别将所述任一状态集对应的各个第三信息分量与在所述初始化状态下各个第三信息分量的访问控制策略进行绑定;所述第三信息分量为所述任一状态集对应的信息分量;
实时对所述任一状态集进行监控;
在所述任一状态集中状态改变的情况下,基于改变后的状态重新将当前状态下的各个第三信息分量与在当前状态下各个第三信息分量的访问控制策略进行绑定。
在一些实施例中,所述获取待访问信息当前对应的状态集,包括:
对业务服务器发送的所述待访问信息的信息状态通知请求进行解析,得到第一状态集;所述第一状态集为所述待访问信息当前对应的状态集;
其中,所述第一状态集包括当前用户在客户端的状态集和所述待访问信息在所述业务服务器的状态集。
在一些实施例中,所述基于所述状态集和/或第一信息访问索引生成所述待访问信息的第二信息查找请求,包括:
在所述第一状态集中选取第二状态集;
基于所述第二状态集和/或第一信息访问索引生成所述第二信息查找请求;
其中,所述第二状态集中各个状态对应的访问控制策略随着所述第二状态集中状态的改变而改变;所述第一信息访问索引用于在所述权限控制服务器中获取第二状态集,和/或信息处理后的目标信息。
在一些实施例中,所述第一信息访问索引是对第二信息访问索引进行修改后得到的;
所述第二信息访问索引是所述文件服务器响应于所述客户端发送的第一信息访问请求生成的;
所述第二信息访问索引用于在所述文件服务器中获取所述目标信息。
在一些实施例中,通过所述第一信息访问索引,可以将业务服务器传送的第一状态集只保存在权限控制服务器中,不随其他信息发送至客户端,简化访问信息的地址与第一状态集之间的映射关系,实现并发。
在一些实施例中,所述方法中的待处理请求包括信息状态通知请求和信息访问请求;所述待处理请求是基于如下步骤进行处理的:
基于所述待处理请求生成待处理元素;所述待处理元素包括参数和回调函数中的至少一种;
将所述待处理元素放入第一任务队列中,等待第一线程组中空闲的线程对所述待处理元素进行处理;
在当前处理结果中存在子任务的情况下,基于所述当前处理结果构建当前待处理元素;
控制第二线程组对所述当前待处理元素进行处理,得到新的处理结果;
基于所述新的处理结果对所述当前处理结果进行更新,直至所述当前处理结果中不存在子任务;
其中,所述权限控制服务器中包括多个线程组和多个处理器核,任一线程组中各个线程独立运行在不同的处理器核。
在一些实施例中,所述方法中的待处理请求包括第一待处理请求,所述第一待处理请求对应的第一任务为执行时间大于预设阈值的任务,所述第一待处理请求是基于如下步骤进行处理的:
响应于所述第一待处理请求,控制任务发起线程组在任务执行状态集中新建用于描述新开始任务执行状态的空间;所述任务执行状态集的形式包括用于描述任务执行状态的数据结构或任务完成状态列表中的至少一种;
控制任务状态获取线程组循环监测所述任务执行状态集中各个任务的执行状态,并及时处理所述任务执行状态集;
在监测到有新完成的任务的情况下,通知任务结束线程组对新完成的任务进行处理;
其中,所述任务结束线程组获取新完成的任务的方式包括基于任务状态获取线程组的通知获取、基于持续监测所述任务执行状态集获得或通过任务完成后的回调获得中的至少一种;
所述任务状态获取线程组和所述任务结束线程组为一个线程组或两个独立的线程组。
第二方面,本申请提供了一种细粒度动态授权的访问控制与高并发处理装置,应用于权限控制服务器,所述装置包括:
获取模块,用于获取待访问信息当前对应的状态集;
生成模块,用于基于所述状态集和/或第一信息访问索引生成所述待访问信息的第二信息查找请求;
接收模块,用于将所述第二信息查找请求发送至文件服务器,接收所述文件服务器返回的目标信息;
控制模块,用于基于预先构建的访问控制策略库获取所述目标信息中所述状态集下各个信息分量对应的访问控制策略,并基于各个信息分量对应的访问控制策略对各个信息分量进行访问控制,和/或所述访问控制支持高并发访问;
其中,所述访问控制策略库中包括各个信息分量在各个状态或状态组合下的访问控制策略。
第三方面,本申请提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的方法。
第四方面,本申请提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述程序时实现上述的方法。
本申请提供的细粒度动态授权的访问控制与高并发处理方法及装置,通过获取目标信息,将信息划分为各个信息分量,并获取目标信息中状态集下各个信息分量对应的访问控制策略,可以根据当前各个信息分量对应的访问控制策略对各个信息分量进行访问控制,能够适应多变的业务流程和隐私需求,能够根据场景或者状态的变化对信息以及信息分量的控制策略进行及时的调整,提高了访问控制的细粒度和实时性,实现了访问控制的动态控制;此外本申请实施例的访问控制可以支持高并发访问,使得本申请的方法可以在高并发场景下使用进行高并发处理。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之一;
图2为本申请实施例提供的策略绑定的流程示意图;
图3为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之二;
图4为本申请实施例提供的服务器与用户客户端交互的流程示意图;
图5为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之三;
图6为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之四;
图7为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之五;
图8为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之六;
图9为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之七;
图10为本申请实施例提供的任务队列的示意图;
图11为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之八;
图12为本申请实施例提供的细粒度动态授权的访问控制与高并发处理装置的结构示意图;
图13为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
在本申请的技术方案中,所涉及的个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
图1为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之一,如图1所示,该方法包括步骤110、步骤120、步骤130和步骤140。该方法流程步骤仅仅作为本申请一个可能的实现方式。
步骤110、获取待访问信息当前对应的状态集。
具体地,本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的执行主体为细粒度动态授权的访问控制与高并发处理装置,该装置应用于权限控制服务器,该装置可以为权限控制服务器中独立设置的硬件设备,也可以为运行在权限控制服务器中的软件程序。
权限控制服务器包含权限管理服务和信息处理服务两部分,权限管理服务和信息处理服务都可以独立部署,也可以部署在同一台服务器上,或者也可以部署在不同服务器上,即:可以根据业务需要部署;权限控制服务器可以是一台,也可以是多台,可以根据业务需要部署,本申请实施例对权限控制服务器的部署方式和数量不作任何限定。
信息包括但不限于:xml、html、图数据库、关系型数据库、txt文本、版式文档(ofd、pdf等格式)、流式文档(doc、docx、xls、xlsx、ppt、pptx等格式)、图像(jpg、png、psd、bmp等格式)、音频(mp3、aac、ogg等格式)、视频(mp4、avi、flv、wmv、mov等格式)中的任意一种。本申请实施例对信息的格式和类型不作任何限定。待访问信息为当前用户准备访问的信息。
状态集中包括多个状态,包括用于描述与一个对象所关联的客观环境变量,状态可以包括阶段、位置、网段、设备、应用或角色中的一种或者多种的组合。本申请实施例对状态集不作任何限定。
例如,在办公文件流转场景下,待访问信息为办公文件,待访问信息当前对应的状态集中包括两个要素,分别是文件阶段和用户角色。要素可理解为状态。其中文件阶段可以包括4个文件阶段,用户角色可以包括5个用户角色,具体如下表1和表2所示。本申请实施例对待访问信息的格式、状态集中包含的要素、文件阶段和用户角色不作任何限定。
表1 办公文件流转场景下涉及的文件阶段
表2 办公文件流转场景下涉及的用户角色
待访问信息当前对应的状态集为与待访问信息相关联的当前最新的各个状态组成的集合。
步骤120、基于状态集和/或第一信息访问索引生成待访问信息的第二信息查找请求。
具体地,第二信息查找请求为用于获取待访问信息当前最新信息的请求。第二信息查找请求中包括信息访问索引和/或状态集等。
步骤130、将第二信息查找请求发送至文件服务器,接收文件服务器返回的目标信息。
具体地,文件服务器为存储待访问信息相关文件的服务器。业务服务器为处理客户端访问请求的服务器。权限控制服务器为进行权限管理和信息处理的服务器。
权限控制服务器生成第二信息查找请求后,将该请求发送至文件服务器,从而获取到目标信息。
此时虽然获取到了目标信息,但当前用户可能没有权限查看所有的目标信息,因此需要进一步确定当前用户在当前状态集下对目标信息的访问控制策略。
步骤140、基于预先构建的访问控制策略库获取目标信息中状态集下各个信息分量对应的访问控制策略,并基于各个信息分量对应的访问控制策略对各个信息分量进行访问控制,和/或访问控制支持高并发访问;其中,访问控制策略库中包括各个信息分量在各个状态或状态组合下的访问控制策略。
具体地,访问控制策略是指用于确定在各个状态或状态组合下用户对目标信息中各个信息分量或信息分量组合的访问权限的规则。
访问控制策略库中包括各个信息分量在各个状态或状态组合下的访问控制策略。
访问控制策略库的描述语言可以为可扩展标记语言(Extensible MarkupLanguage,XML)、可扩展访问控制标记语言(Extensible Access Control MarkupLanguage,X ACML,)、安全声明标记语言(Security Assertion Markup Language,SAML)、授权定义语言(Authorization Specification Language,ASL)、模板语言或自定义语言格式等。本申请实施例对访问控制策略库的描述语言不作任何限定。
信息分量指的是信息中的信息子集,例如字符串信息中的子字符串、图片信息中的一块区域、音频信息中的一段对话或版式文档中的一张图片等。本申请实施例对信息分量的类型不作任何限定。
例如,在办公文件流转场景下,目标信息可以包括办公文件,信息分量指的是办公文件中不同的区域划分,各个区域代表各个信息分量。办公文件区域的划分以及每个区域包含的内容如下表3所示:
表3办公文件区域划分
在办公文件流转场景下,访问控制策略库可以使用json描述语言进行描述,访问控制策略库中某条访问控制策略可以如下所示:
{"文件阶段":"文件起草", "控制区域":"区域1 ", "Accessible_List":{"文件起草人"}}
其中,Accessible_List可理解为白名单。在该访问控制策略中,采用白名单的方式,表明在“文件起草”阶段时,白名单中的用户角色有权查看“区域1”。
本申请实施例对访问控制策略的格式与内容不作任何限定。
权限控制服务器接收到文件服务器返回的目标信息后,根据预先构建的访问控制策略库获取目标信息中每个信息分量的访问控制策略,并与状态集一起,进行访问权限判定,判定目标信息中的各个信息分量是否允许被访问。
例如,可以判断当前用户在状态集中对应的用户角色,并确定该用户角色能否访问当前文件阶段下办公文件的各个区域。
可以通过如下方式获取目标信息中状态集下各个信息分量对应的访问控制策略:从访问控制策略库中直接获取、从当前目标信息中获取或从策略映射表中获取等。本申请实施例对访问控制策略的方式不作任何限定。
可以根据各个信息分量对应的访问控制策略对各个信息分量进行访问控制。本申请实施例的访问控制可以支持高并发访问。
本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法,通过获取目标信息,将信息划分为各个信息分量,并获取目标信息中状态集下各个信息分量对应的访问控制策略,可以根据当前各个信息分量对应的访问控制策略对各个信息分量进行访问控制,能够适应多变的业务流程和隐私需求,能够根据场景或者状态的变化对信息以及信息分量的控制策略进行及时的调整,提高了访问控制的细粒度和实时性,实现了访问控制的动态控制;此外本申请实施例的访问控制可以支持高并发访问,使得本申请的方法可以在高并发场景下使用进行高并发处理。
需要说明的是,本申请每一个实施方式可以自由组合、调换顺序或者单独执行,并不需要依靠或依赖固定的执行顺序。
在一些实施例中,获取目标信息中状态集下各个信息分量对应的访问控制策略之后,还包括:
基于访问控制策略确定当前用户对各个信息分量的访问权限;
基于访问权限在目标信息中确定第一信息分量和第二信息分量;
将目标信息中第二信息分量进行信息处理,并将信息处理后的目标信息发送至客户端;
其中,第一信息分量为允许当前用户访问的信息分量;第二信息分量为限制当前用户访问的信息分量。
具体地,可以根据访问控制策略确定当前用户对各个信息分量的访问权限。
若用户具备当前信息分量的访问权限,即当前信息分量允许被用户访问,则对当前信息分量不进行任何处理;可以将这类允许当前用户访问的信息分量称为第一信息量。
若当前用户不具备当前信息分量的访问权限,即当前信息分量不允许被当前用户访问,则对当前信息分量进行信息处理;可以将这类限制当前用户访问的信息分量称为第二信息量。
信息处理包括但不限于替换、随机化、泛化、马赛克、区域遮蔽、阻断、过滤或删除等中的一个或多个。本申请实施例对信息处理的方式不作任何限定。
各个信息分量对应的访问控制策略均可按照上述步骤进行权限判定和信息处理。
将权限判定并进行信息处理后的目标信息返回给客户端给当前用户查看。最终的目标信息可以以PDF文件、WORD文档等方式展示。本申请实施例对信息的展示方式不作任何限定。
本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法,通过判断信息分量的类型对限制当前用户访问的信息分量进行信息处理,可以保证最终给用户展示的内容均为当前用户可以查看的内容,并保证将当前用户可以查看的内容均展示给当前用户,提高了访问控制的安全性。
在一些实施例中,访问控制策略库是基于如下步骤进行构建的:
获取待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合;
设置各个访问场景的状态集中各个状态或状态组合的信息访问控制策略;信息访问控制策略包括各个信息分量的访问控制策略和各个信息分量组合的访问控制策略;
基于各个访问场景、各个状态或状态组合,以及各个访问控制策略之间的关联关系构建访问控制策略库。
获取待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合,包括:
接收权限控制服务器用户的访问控制策略设置;
响应于所述权限控制服务器用户的访问控制策略设置,确定待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合;
所述权限控制服务器用户的访问控制策略设置的形式包括:基于规则、配置文件、按钮、圈出、勾选、标记、按键、滑轮、菜单、语音、视频、眼神、手势、文字、生物电信号、虚拟现实中的至少一种。
构建访问控制策略库之后,还包括:
获取访问控制策略库中任一状态集中的初始化状态;
分别将任一状态集对应的各个第三信息分量与在初始化状态下各个第三信息分量的访问控制策略进行绑定;第三信息分量为任一状态集对应的信息分量;
实时对任一状态集进行监控;
在任一状态集中状态改变的情况下,基于改变后的状态重新将当前状态下的各个第三信息分量与在当前状态下各个第三信息分量的访问控制策略进行绑定。
具体地,图2为本申请实施例提供的策略绑定的流程示意图,如图2所示,该流程包括如下内容:
步骤210、配置访问控制策略库,配置访问控制策略库的配置原则是:在一个或者多个访问场景下,针对状态集中不同的状态或者状态组合制定对信息以及信息分量、信息分量组合的访问控制策略。
场景指的是具体的应用环境,例如办公文件流转场景和社交网络信息流转场景等。本申请实施例对场景不作任何限定。
权限控制服务器用户的访问控制策略设置的形式包括但不限于:基于规则、配置文件、按钮、圈出、勾选、标记、按键、滑轮、菜单、语音、视频、眼神、手势、文字、生物电信号、虚拟环境等形式中的一种或者多种方式。具体类似手机的静音键的上下拨动、录音笔的左右拨动,也可以反映为脱离物理开关的输入,例如屏幕手势(左到右、右到左、上到下、下到上等)、弹出界面填写(例如表单录入)、文件(例如XML格式)导入、语音录入、配置文件输入、弹框/菜单选择、在屏幕上显示虚拟键盘输入等方式的触发,本申请实施例对此不作具体限定。
步骤220、从信息的初始化信息中,获取其包含的状态集中不同的状态或者状态组合,得到状态集中的初始化状态,根据初始化状态在访问控制策略库中获取第一访问控制策略集,并与信息进行绑定。
第一访问控制策略集为初始化状态下各个第三信息分量的访问控制策略组成的集合。第三信息分量为当前状态集对应的信息分量。
初始化信息指的是当信息首次在系统中发布时,信息的一些初始化属性,例如信息的创建者、信息的初始化状态(信息首次发布时的处理阶段、位置、网段、设备、应用、角色等的一种或者多种的组合)、和信息的创建日期等。本申请实施例对初始化信息的格式和内容不作任何限定。
例如,在办公文件流转场景下,针对办公文件,其初始化状态是由文件起草人发起该办公文件的发布请求,一般为“文件起草”阶段。因此,在访问控制策略库中,获取该办公文件在“文件起草”阶段下各个区域的访问控制策略,所形成的访问控制策略集(第一访问控制策略集)为:
{
{"文件阶段":"文件起草", "控制区域":"区域1 ", "Accessible_List":{"文件起草人"}}
{"文件阶段":"文件起草", "控制区域":"区域2", "Accessible_List":{"文件起草人"}},
{"文件阶段":"文件起草", "控制区域":"区域3", "Accessible_List":{"文件起草人"}},
{"文件阶段":"文件起草", "控制区域":"区域4", "Accessible_List":{"文件起草人"}},
{"文件阶段":"文件起草", "控制区域":"区域5", "Accessible_List":{""}},
}
其中,Accessible_List可理解为白名单。
当前案例中,访问控制策略与信息分量的绑定方式为,将访问控制策略以不可见批注的形式嵌入到办公文件的各个区域中,生成包含有当前文件阶段下区域策略信息批注的办公文件。
访问控制策略集与信息分量的绑定方式还可以为将访问控制策略嵌入到信息分量中或将访问控制策略添加到信息分量的访问控制策略映射表中等。本申请实施例对访问控制策略集与信息分量的绑定方式不作任何限定。
嵌入信息的方式可以为以批注方式嵌入、以注释方式嵌入、以水印方式嵌入或以元数据方式嵌入等。本申请实施例对嵌入信息的方式不作任何限定。
信息的访问控制策略映射表的存储方式可以为本地数据库存储、云端数据库存储、程序变量存储或本地文件存储等。本申请实施例对信息的访问控制策略映射表的存储方式不作任何限定。
步骤230、当信息状态发生变化时,根据新的状态去访问控制策略库获取第二访问控制策略集,并与信息重新绑定。
本步骤是个迭代的过程,只要状态发生变化,就可以去获取新的策略。
图3为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之二;如图3所示,以业务子系统为办理管理办公文件的各个子系统为例,客户端为各个文件管理员的各个电子设备端。
在办公文件流转场景下,针对办公文件,当文件管理员修改办公文件的文件阶段并修改成功时,即办公文件状态发生了变化,然后权限控制服务器根据新的文件阶段去访问控制策略库中获取针对于新的文件阶段的各个区域的访问控制策略集(第二访问控制策略集)。以由“文件起草”阶段变更为“文件修改”阶段为例,“文件修改”阶段下各个区域的访问控制策略集(第二访问控制策略集)为:
{
{"文件阶段":"文件修改", "控制区域":"区域1", "Accessible_List":{"文件起草人,文件修改人"}},
{"文件阶段":"文件修改", "控制区域":"区域2", "Accessible_List":{"文件起草人,文件修改人"}},
{"文件阶段":"文件修改", "控制区域":"区域3", "Accessible_List":{"文件起草人,文件修改人"}},
{"文件阶段":"文件修改", "控制区域":"区域4", "Accessible_List":{"文件起草人,文件修改人"}},
{"文件阶段":"文件修改", "控制区域":"区域5", "Accessible_List":{""}},
}
可以通过状态监测触发器或状态变更通知来判断状态集中状态是否改变。
本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法,通过状态的改变,将当前状态下各个信息分量的访问控制策略进行重新绑定,提高了绑定的访问控制策略的时效性,提高了访问控制的准确度。
在一些实施例中,步骤110包括:
对业务服务器发送的待访问信息的信息状态通知请求进行解析,得到第一状态集;第一状态集为待访问信息当前对应的状态集;
其中,第一状态集包括当前用户在客户端的状态集和待访问信息在业务服务器的状态集。
步骤120包括:
在第一状态集中选取第二状态集;
基于第二状态集和/或第一信息访问索引生成第二信息查找请求;
其中,第二状态集中各个状态对应的访问控制策略随着第二状态集中状态的改变而改变;第一信息访问索引用于在权限控制服务器的权限管理功能模块中获取第二状态集,和/或信息处理后的目标信息。
第一信息访问索引是对第二信息访问索引进行修改后得到的;
第二信息访问索引是文件服务器响应于客户端发送的第一信息访问请求生成的;
第二信息访问索引用于在文件服务器中获取目标信息。
通过第一信息访问索引,可以将业务服务器传送的第一状态集只保存在权限控制服务器中,不随其他信息发送至客户端,简化访问信息的地址与第一状态集之间的映射关系,实现并发。
具体地,图4为本申请实施例提供的服务器与用户客户端交互的流程示意图;图5为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之三,图6为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之四,如图4、图5和图6所示,本实施例的细粒度动态授权的访问控制与高并发处理方法包括如下步骤:
当前用户通过客户端向业务服务器发起第一信息访问请求,即第一信息访问请求。
第一信息访问请求中可以包括客户端处的状态集和待访问信息的信息标识。客户端处的状态集可以包括用户在客户端处的状态集,还可以包括待访问信息在客户端处的状态集。本申请实施例对此不作任何限定。
信息标识指能够在系统中明确识别和区分不同的信息实体而分配的唯一标识符。这个标识符可以是数字、字符串、符号、代码或其他形式的标志,例如电子档案信息的档案号或数据库记录的主键等。本申请实施例对信息标识的生成方式、内容和格式不作任何限定。
本申请实施例中,用户也可理解为文件查看客户端,文件查看客户端向业务服务器发起第一信息访问请求,第一信息访问请求中包括有待访问信息的信息标识,以及当前用户的标识。
例如,第一信息访问请求可以如下所示:
http://IIE.Nsp.Access.File/get-by-rid?rid=10130687541015281&User_id=12434355644
其中,rid表示有待访问信息的信息标识,例如在办公文件流转场景下的办公文件记录表主键,在业务服务器中会维持一张办公文件记录表,通过办公文件记录表主键rid,业务服务器可以在办公文件记录表中查询对应的文档在文件服务器中存放的路径;User_id表示发起请求的用户标识,可以作为客户端处的状态集。本申请实施例对第一信息访问请求的环境、内容和格式不作任何限定。
需要说明的是,为了便于理解本申请实施例中涉及到的第一信息访问请求、第一信息查找请求、第二信息访问索引等的使用方式、数据URL格式、具体内容等,本申请实施例基于阿里云对象存储操作支持系统(Operation Support Systems,OSS)服务为环境进行举例,在阿里云对象存储OSS服务器上建立了文件目录。本申请实施例不限于阿里云对象存储OSS服务环境。
业务服务器接收到第一信息访问请求后,对其进行解析,从而获取待访问信息的信息标识,并向文件服务器发送第一信息查找请求。
文件服务器的形式包括但不限于第三方云存储服务器、文件传输协议(FileTransfer Protocol,FTP)文件服务器或包含在业务服务器中的文件存储模块等。本申请实施例对文件服务器的形式不作任何限定。
第一信息查找请求中可以包括待访问信息的信息标识和业务服务器的身份认证信息等。
业务服务器在接收到第一信息访问请求后,对第一信息访问请求进行解析,可以得到待访问信息的信息标识,并构造第一信息查找请求,发送给文件服务器。
例如,在阿里云OSS服务环境下,第一信息查找请求可以如下所示:
this.ossOperations.fileLink(Nsp_Account, Nsp_Filepath, Nsp_Backet,Nsp_Duration, Nsp_UnitofTime)
本实例中的第一信息查找请求中, this.ossOperations.fileLink为阿里云OSS服务获取文件的接口,参数包括待访问信息的信息标识(Nsp_Filepath),业务服务器的身份认证标识(Nsp_Account),以及一些其他的参数(例如过期时间和存储桶名等)。本申请实施例对第一信息查找请求的环境、内容和格式不作任何限定。
文件服务器在接收到第一信息查找请求后,根据该请求进行信息查找,查找到信息后,生成第二信息访问索引,并将第二信息访问索引返回给业务服务器。
例如,在阿里云OSS服务环境下,文件服务器在接收到第一信息查找请求后,生成的第二信息访问索引可以如下所示:
http://Nsp_Server/Nsp_Filepath?Nsp_Expires=1702361110&Nsp_AccessKeyId=8vHLXAkdD8y8XQxsNsp&Signature=BnLCU6URKt%2BVtrGJobS%2BPBV7ztk%3DNsp
在本实例中,使用的文件服务器为云存储文件服务器,通过第二信息访问索引,用户可以直接在web浏览器中访问对应的文件,也可以下载该文件。本申请实施例对第二信息访问索引的环境、内容和格式不作任何限定。
文件服务器信息查找的方式包括但不限于在文件服务器本地进行查找、在第三方存储服务器中进行查找等。本申请实施例对此不作任何限定。
通过第二信息访问索引,可以直接或者间接地访问文件服务器中对应的目标信息,第二信息访问索引的形式可以包括可以直接访问文件服务器中该信息的外部web链接、文件服务器的互联网协议(Internet Protocol,IP)和端口或文件服务器为该信息生成的特定密钥等。本申请实施例对第二信息访问索引的形式不作任何限定。
业务服务器接收到第一信息访问请求后,对其进行解析,获取待访问信息的信息标识和客户端处的状态集,并根据这些参数获取待访问信息在业务服务器处的状态集,将客户端处的状态集与待访问信息在业务服务器处的状态集进行融合,生成第一状态集。
例如,待访问信息在业务服务器处的状态集中的状态可以为待访问信息当前的阶段和待访问信息当前的敏感等级等。
融合的方式可以为取交集、取并集或取补集等。本申请实施例对融合的方式不作任何限定。
例如,在办公文件流转场景中,业务服务器根据待访问信息的信息标识,通过查找得到对应办公文件的当前文件阶段,并根据客户端处的状态集中的发起请求的用户标识User_id,通过查找得到对应用户的用户角色。构建的待访问信息在业务服务器处的状态集为{文件阶段,用户角色},由于在构建该状态集时,使用了客户端处的状态集中的用户标识User_id,并且客户端处的状态集中只包含有用户标识,所以本实例中第一状态集等价于待访问信息在业务服务器处的状态集,包括的内容为{文件阶段,用户角色}。
又例如,在其他访问场景中,客户端处的状态集可能为{用户位置、用户网段},待访问信息在业务服务器处的状态集可能为{信息的隐私需求,信息的处理进度},则此时第一状态集可以为客户端处的状态集和待访问信息在业务服务器处的状态集的并集,表示为{用户位置、用户网段、信息的隐私需求,信息的处理进度}。
业务服务器根据第一状态集,构造信息状态通知请求,并将信息状态通知请求发送给权限控制服务器。
信息状态通知请求中可以包括第一状态集和/或第二信息访问索引。
此时,业务服务器构造的信息状态通知请求中包括第一状态集和/或第二信息访问索引,办公文件流转场景中信息状态通知请求可以如下所示:
http://Nsp_Authorization:Nsp_Port1/?Stage=文件修改&Role=文件修改人&Return=http://Nsp_Server/Nsp_Filepath?Nsp_Expires=1702361110&Nsp_AccessKeyId=8vHLXAkdD8y8XQxsNsp&Signature=BnLCU6URKt%2BVtrGJobS%2BPBV7ztk%3DNsp
其中,“http://Nsp_Authorization:Nsp_Port1/”为权限管理服务的地址和端口,“Stage=文件修改&Role=文件修改人”为第一状态集,“Return=http://Nsp_Server/Nsp_Filepath?Nsp_Expires=1702361110&Nsp_AccessKeyId=8vHLXAkdD8y8XQxsNsp&Signature=BnLCU6URKt%2BVtrGJobS%2BPBV7ztk%3DNsp”为第二信息访问索引。本申请实施例对信息状态通知请求的场景、内容和格式不作任何限定。
业务服务器可以通过配置文件来设定权限管理服务的端口和域名,也可以直接在程序中进行设定。本申请实施例对业务服务器设定权限管理服务的端口和域名的方式不作任何限定。
权限管理服务接收到信息状态通知请求后,对其进行解析得到第一状态集,并将第一状态集保存,生成检索该第一状态集的索引号Index,将索引号Index与保存的第一状态集进行关联。
保存成功后向业务服务器返回信息状态通知请求应答。
第一状态集可以使用数据库方式保存、使用动态键值对链表方式保存或使用动态键值对数组等方式保存。本申请实施例对第一状态集的保存方式不作任何限定。
信息状态通知请求应答中可以包括信息处理服务的地址和端口,对应的保存信息状态的索引号Index,以及第二信息访问索引。
例如,权限管理服务接收到信息状态通知请求后,以结构体数组的方式保存第一状态集,索引号Index可以为保存对应第一状态集的数组的下标。
例如,在办公文件流转场景中,信息状态通知请求应答可以如下所示:
http://Processing:Nsp_Port2/?Index=XXX&Sign=YYY&Return=http://Nsp_Server/Nsp_Filepath?Nsp_Expires=1702361110&Nsp_AccessKeyId=8vHLXAkdD8y8XQxsNsp&Signature=BnLCU6URKt%2BVtrGJobS%2BPBV7ztk%3DNsp
其中,“http://Processing:Nsp_Port2/”为信息处理服务的地址和端口,“Index=XXX”表示对应的索引号Index,通过索引号Index可以定位或者查找到唯一的第一状态集,“Sign=YYY”表示权限管理服务对信息状态通知请求应答中的“http://Processing:Nsp_Port2/、Index=XXX、Return=http://Nsp_Server/Nsp_Filepath?Nsp_Expires=1702361110&Nsp_AccessKeyId=8vHLXAkdD8y8XQxsNsp&Signature=BnLCU6URKt%2BVtrGJobS%2BPBV7ztk%3DNsp”的签名,“Return=http://Nsp_Server/Nsp_Filepath?Nsp_Expires=1702361110&Nsp_AccessKeyId=8vHLXAkdD8y8XQxsNsp&Signature=BnLCU6URKt%2BVtrGJobS%2BPBV7ztk%3DNsp”,即为上述的第二信息访问索引。本申请实施例对信息状态通知请求应答的场景、内容和格式不作任何限定。
权限控制服务器的信息处理服务可以和权限管理服务的地址和端口不一样,也可以一样。权限管理服务可以通过配置文件读取信息处理服务的地址和端口,信息处理服务和权限管理服务可以在不同服务器中,可以在一个服务器中的不同进程中,也可以在同一进程中的不同块中,本申请实施例对此不作任何限定。
业务服务器接收到信息状态通知请求应答后,基于信息状态通知请求应答,生成第一信息访问索引。
业务服务器基于第一信息访问索引,生成第一信息访问请求应答,返回给用户。
第一信息访问请求应答中可以包括第一信息访问索引和其他内容。
第一信息访问索引指的是业务服务器、权限控制服务器在第二信息访问索引的基础上,添加或修改其中的IP或域名等信息,使其指向信息处理服务,而不是指向文件服务器,并且添加索引号Index等信息。具体的修改方式与第二信息访问索引的形式有关。本申请实施例对具体的修改方式不作任何限定。
在当前实例中,信息状态通知请求应答、第一信息访问索引和第一信息访问请求应答内容一致。业务服务器在接收到信息状态通知请求应答后,不经过修改,将其直接作为第一信息访问请求应答发送给用户。此实例是实现方式之一,本申请对此不做任何限定。
用户在接收到第一信息访问请求应答后,基于第一信息访问请求应答,构造第二信息访问请求,发送给信息处理服务,请求访问目标信息。
第二信息访问请求中可以包括第一信息访问索引等。
用户向信息处理服务请求访问目标信息的方式包括:主动请求(直接给信息处理服务的地址和端口发送请求)或间接请求(用户不知情,而是通过链接重定向等方式,自动将请求跳转至信息处理服务)等。本申请实施例对用户请求访问目标信息的方式不作任何限定。
信息处理服务接收到用户发送的第二信息访问请求后,解析该请求,得到第一信息访问索引,并通过第一信息访问索引中包含的索引号Index,查找到对应的第一状态集,并从第一状态集中选取一个或者多个状态的组合,构成第二状态集。
通过索引号Index,可以在本地或者第三方查找索引号Index对应的第一状态集。
第二状态集是第一状态集的子集,只包括能够对目标信息各个信息分量对应的访问控制策略进行重置的状态集。例如在办公文件流转场景中,第一状态集包含文件阶段和用户角色,但第二状态集只包含文件阶段,因为只有当文件阶段变更时,才会重置文件对应的访问控制策略。
信息处理服务基于第一信息访问索引中包含的第二信息访问索引和/或第二状态集,构造第二信息查找请求,并向文件服务器发送第二信息查找请求,请求目标信息。
信息处理服务基于第二状态集,获取第二状态集下目标信息中各个信息分量对应的访问控制策略集合。
例如办公文件流转场景中,第二信息查找请求中可以包括第二信息访问索引(即目标信息的文件在文件服务器上的位置)。
文件服务器接收到第二信息查找请求后,对其进行解析,得到目标信息,返回给信息处理服务所在的服务器。
例如办公文件流转场景中,文件服务器会将对应的办公文件返回给信息处理服务,同时,信息处理服务根据对应的办公文件所处的文件阶段,获取访问控制策略集合。
需要说明的是,文件服务、业务服务、信息处理服务和权限管理服务可以合并在一个服务器中实现,或者其中的任意两个或者多个服务可以合并在一个服务器中实现。
本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法,通过对访问索引进行修改,以及在第一状态集中选取第二状态集,提高了访问控制效率和准确度。
图7为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之五,图8为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之六,如图7和图8所示,在一些实施例中,上述方法中的待处理请求包括信息状态通知请求和信息访问请求;待处理请求是基于如下步骤进行处理的:
基于待处理请求生成待处理元素;待处理元素包括参数和回调函数中的至少一种;
将待处理元素放入第一任务队列中,等待第一线程组中空闲的线程对待处理元素进行处理;
在当前处理结果中存在子任务的情况下,基于当前处理结果构建当前待处理元素;
控制第二线程组对当前待处理元素进行处理,得到新的处理结果;
基于新的处理结果对当前处理结果进行更新,直至当前处理结果中不存在子任务;
其中,权限控制服务器中包括多个线程组和多个处理器核,任一线程组中各个线程独立运行在不同的处理器核。
具体地,开启线程,监听端口的通信连接请求(在传输控制协议(TransmissionControl Protocol,TCP)等面向连接的通信协议中,需要本步骤,但是在用户数据报协议(User Datagram Protocol,UDP)等无连接的通信协议中,不需要本步骤)。本申请实施例对通信协议不作任何限定。
开启第一线程组,持续监听发送到通信端口的消息;当通信端口有新到来的消息时,接收该消息,并基于接收到的消息,构造第一待处理元素,将待处理元素放入到第一任务队列中。
从不同的端口处接收到的消息,将放入到不同的任务队列中。每个线程组只负责部分任务。处理完后把结果参数放在任务队列里,等下一个线程组调用。
可以同时对多个通信端口进行监听。例如可以使用select、poll和epoll等这些输入/输出(Input/Output,IO)多路复用架构提高监听效率和处理效率。本申请实施例对通信端口的监听方式不作任何限定。
其中,消息可以为整个访问控制过程中涉及到的待处理的请求。待处理元素的元素形式可以为变量、函数指针或结构体等。本申请实施例对待处理元素的元素形式不作任何限定。
变量可以包括字符串、整数、浮点数或字符等。结构体可以包括变量之间的组合、变量与函数指针之间的组合或结构体与结构体之间的组合等。本申请实施例对变量的形式、结构体的形式不作任何限定。
端口信息的获取方式可以包括在程序中指定、通过配置文件获取或通过与用户进行交互获取等。
每个线程组中的线程都负责执行相同的任务,但是执行状态会随着参数的变化而变化,线程组的线程个数取决于待处理任务的复杂程度,对于时间消耗多、复杂程度高的任务,需要增大线程组中线程的个数;而对于时间消耗少、复杂程度低的任务,需要减少线程组中线程的个数;线程组中线程的数量也可以从配置文件中进行读取。系统管理员可以根据当前系统的配置,以及处理不同任务的效率,动态地对各个线程组中包含线程的数量进行动态的调整。
为了提高系统的并行效率,线程组中的每个线程可以单独占用一个中央处理器(Central Processing Unit,CPU)核,各个线程之间相互独立运行在不同的CPU核上,从而避免了线程之间由于竞争CPU核而导致的效率降低。
若第一线程组处理结束后没有其他任务需要处理,则可以不再创建新的任务队列以及新的线程组,若还存在子任务,则开启第二线程组,处理第一任务队列中的元素;
当第二线程组有线程为空闲状态、且第一任务队列中有第一待处理元素时,空闲线程依次取位于第一任务队列中队首的第一待处理元素进行处理。
当第二线程组有线程为空闲状态、但第一任务队列中没有第一待处理元素时,空闲线程将进行等待,直到第一任务队列中有新的第一待处理元素加入时,空闲线程依次取位于第一任务队列中队首的第一待处理元素进行处理;
当后续还有子任务时,根据第二线程组中线程处理后的结果,构造第二待处理元素,将第二待处理元素放入到第二任务队列中。开启第三线程组,处理第二任务队列中的元素;
循环上述步骤,直到后续没有子任务,就不再创建新的任务队列以及新的线程组。
此实施例是实现方式之一,本申请对此不做任何限定。
例如,图9为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之七;图10为本申请实施例提供的任务队列的示意图,如图9和图10所示,线程0通过epoll架构,对端口A和端口B的连接请求进行监听,线程0可以从配置文件中读取具体要监听的端口号。当有新的连接请求到来时,线程0接收新的连接请求,生成通信描述符,并且将新生成的通信描述符加入到对应端口的通信描述符集中。端口A接收到请求后,当线程组1的线程数量大于1时,此时线程组1中的每个线程会对应一个端口A的通信描述符子集,线程0可以通过包括但不限于取模或随机的方式,将新生成的通信描述符加入到端口A的某个通信描述符子集中。对于端口B接收到的请求也类似处理。本申请实施例对此不作任何限定。
线程组1通过epoll架构,对端口A的所有流量进行监听,并根据流量对应的通信描述符是否在端口A的通信描述符集中,来判断是否需要对该请求进行处理。当线程组1中的某个线程负责的端口A的通信描述符子集中某个通信描述符对应的缓冲区有新的消息到来时,该线程将新的消息取出,解析后放入到任务队列1中。在放入任务队列1中时,为了防止多个线程的访问冲突,需要使用线程锁。然后继续进行监听,有新的消息到来时循环处理。在将解析后的元素放入到任务队列1中后,需要发出信号,若线程组2中有线程由于任务队列1为空而进入阻塞状态,则该信号会随机唤醒线程组2中某个阻塞的线程。当线程组1中的某个线程负责的端口A的通信描述符子集中全部通信描述符对应的缓冲区都没有新的消息到来时,该线程进入到阻塞状态,直到有新的消息到来。
线程组2对任务队列1中的每个元素进行处理,当线程组2中的某个线程的状态变为空闲时,该线程试图取出任务队列1队首的元素进行处理,此时如果任务队列1中有元素,则该线程可以取到任务队列1队首的元素,并将该元素作为参数进行处理。如果任务队列1中没有元素,则该线程进入阻塞状态,等待信号将其唤醒。线程组2中的线程会将处理结果写入到“第一状态集”存储结构中进行存储,并生成一个唯一的索引号Index,能够唯一定位并识别存储的“第一状态集”。然后,会给元素中包含的通信标识符发送信息状态通知请求应答的消息。
线程组3与线程组1类似,通过epoll架构,对端口B的通信描述符集进行监听,并将监听到的第二信息访问请求消息解析后放入到任务队列2中等待线程组4进行处理。
线程组4对任务队列2中的每个元素进行处理,当线程组4中的某个线程的状态变为空闲时,该线程试图取出任务队列2队首的元素进行处理,此时如果任务队列2中有元素,则该线程可以取到任务队列2队首的元素,并将该元素作为参数进行处理。如果任务队列2中没有元素,则该线程进入阻塞状态,等待信号将其唤醒。线程组4中的线程从队首取出的元素后,进行解析,得到其中包含的索引号Index,然后通过查询索引号Index,得到该索引号Index对应的“第一状态集”,通过字符串拼接,得到包含有“文件阶段&用户角色&文件服务器相关信息&文件路径及文件名&通信描述符”等的元素,并将该元素添加到任务队列3中。
线程组5对任务队列3中的每个元素进行处理,当线程组5中的某个线程的状态变为空闲时,该线程试图取出任务队列3队首的元素进行处理,此时如果任务队列3中有元素,则该线程可以取到任务队列3队首的元素,并将该元素作为参数进行处理。如果任务队列3中没有元素,则该线程进入阻塞状态,等待信号将其唤醒。线程组5中的线程从队首取出的元素后,进行解析,得到原始文件在文件服务器上的路径,然后根据文件状态,得到该文件状态对应文件在文件服务器上的路径,最后从文件服务器上获取标注后的办公文件并下载到本地。在获取文件成功后,获取本地保存的文件路径,生成包含有“文件阶段&用户角色&标注后的文件的本地路径&通信描述符”的元素,并将该元素添加到任务队列4中。
线程组6对任务队列4中的每个元素进行处理,当线程组6中的某个线程的状态变为空闲时,该线程试图取出任务队列4队首的元素进行处理,此时如果任务队列4中有元素,则该线程可以取到任务队列4队首的元素,并将该元素作为参数进行处理。如果任务队列4中没有元素,则该线程进入阻塞状态,等待信号将其唤醒。线程组6中的线程从队首取出的元素后,进行解析,得到标注后的办公文件的本地路径,以及用户角色,并根据用户角色对标注后的办公文件进行权限控制判定和信息处理。对其每个包含有权限控制策略的区域进行遍历,判断当前用户角色是否能够访问该区域,若可以访问,则对该区域不进行处理;若不可以访问,则会根据该区域中的内容进行信息处理,信息处理包括但不限于替换、随机化、泛化、马赛克、区域遮蔽、阻断、过滤或删除等中的一个或多个,本申请不作任何限定。在遍历完全部区域后,生成权限控制文件,并获取本地保存该权限控制文档的路径,生成包含有“信息处理后的文件的本地路径&通信描述符等”的元素,并将该元素添加到任务队列5中。
线程组7对任务队列5中的每个元素进行处理,当线程组7中的某个线程的状态变为空闲时,该线程试图取出任务队列5队首的元素进行处理,此时如果任务队列5中有元素,则该线程可以取到任务队列5队首的元素,并将该元素作为参数进行处理。如果任务队列5中没有元素,则该线程进入阻塞状态,等待信号将其唤醒。线程组7中的线程从队首取出的元素后,进行解析,根据该元素中包含的信息处理后的文件的本地路径,将文件进行读取并保存到内存中,然后根据该元素中包含的通信描述符,以分包/整包的形式将内存中保存的信息处理后的文件的内容发送给对应的通信描述符。
对于任务队列,以及多个线程都需要访问的其他全局变量,在线程对其进行修改时,为了防止多个线程之间由于修改而造成的冲突,需要为变量添加线程锁。线程想要修改变量时,首先判断该变量的线程锁是否为可用,若可用则加锁并对该变量进行处理,在处理结束后释放该变量的线程锁;若不可用则该线程进入阻塞状态,在监测到该变量的线程锁被释放后,加锁并对该变量进行处理,在处理结束后释放该变量的线程锁。
对于任务队列,还需要添加信号量进行线程之间的同步。当任务队列为空时,请求元素的线程会进入到阻塞状态,直到有信号将其唤醒。而当某个线程往任务队列中添加元素时,在添加成功后会发出“队列不为空”信号,唤醒在阻塞状态等待信号的其他线程。当任务队列已满,也可以使用信号量进行线程之间的同步,此时添加元素的线程,在任务队列已满时会进入阻塞状态,直到有从任务队列中取元素的线程,在成功取出一个元素后,发出“队列未满”信号将其唤醒。
为了提高系统的适配性,使系统能够在不同配置的服务器上高效率运行,线程组中线程的数量可以从配置文件中进行读取。系统管理员可以根据当前系统的配置,以及处理不同任务的效率,动态地对各个线程组中包含线程的数量进行动态的调整。
本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法,支持高并发,即使存在大量的待处理请求,也可以高效处理这些请求,提高了访问控制效率。
此实施例是实现方式之一,本申请对此不做任何限定。
图11为本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法的流程示意图之八;如图11所示,上述方法中的待处理请求包括第一待处理请求,第一待处理请求对应的第一任务为执行时间大于预设阈值的任务,第一待处理请求是基于如下步骤进行处理的:
响应于第一待处理请求,控制任务发起线程组在任务执行状态集中新建用于描述新开始任务执行状态的空间;任务执行状态集的形式包括用于描述任务执行状态的数据结构或任务完成状态列表中的至少一种;
控制任务状态获取线程组循环监测任务执行状态集中各个任务的执行状态,并及时处理任务执行状态集;
在监测到有新完成的任务的情况下,通知任务结束线程组对新完成的任务进行处理;
其中,任务结束线程组获取新完成的任务的方式包括基于任务状态获取线程组的通知获得、基于持续监测任务执行状态集获得或通过任务完成后的回调获得中的至少一种;
任务状态获取线程组和任务结束线程组为一个线程组或两个独立的线程组。
具体地,在执行某些比较耗时的任务时,例如文件下载或信息处理等,为避免线程由于等待任务结束而一直占用CPU,可以采用如下的处理方式处理待处理请求。
任务发起线程组发起任务请求,任务发起线程组在任务执行状态集中新建一个用于描述新开始任务执行状态的空间。
任务执行状态集包括用于描述任务执行状态的数据结构或任务完成状态列表中的至少一种。
例如,文件下载任务,任务执行状态集指的是对应的文件夹中,已经下载好的文件的标识或正在下载的文件(中间文件)的标识等。
任务状态获取线程组循环监测任务执行状态集中各个任务的执行状态,并及时处理任务执行状态集,在监测到有新完成的任务时,通知任务结束线程组。
任务结束线程组对新完成的任务进行处理,若后续还有子任务时,根据对新完成的任务进行处理后的处理结果,构建待处理元素,放入任务队列中,待后续线程组进行处理。
任务状态获取线程组和任务结束线程组可以合并。
本申请实施例提供的细粒度动态授权的访问控制与高并发处理方法,可以适用于各种场景下的高并发处理,提高了处理效率。
此实施例是实现方式之一,本申请对此不做任何限定。
下面对本申请实施例提供的细粒度动态授权的访问控制与高并发处理装置进行描述,下文描述的细粒度动态授权的访问控制与高并发处理装置与上文描述的细粒度动态授权的访问控制与高并发处理方法可相互对应参照。
图12为本申请实施例提供的细粒度动态授权的访问控制与高并发处理装置的结构示意图,如图12所示,该装置应用于权限控制服务器,该装置包括获取模块1210、生成模块1220、接收模块1230和控制模块1240。
获取模块,用于获取待访问信息当前对应的状态集;
生成模块,用于基于状态集和/或第一信息访问索引生成待访问信息的第二信息查找请求;
接收模块,用于将第二信息查找请求发送至文件服务器,接收文件服务器返回的目标信息;
控制模块,用于基于预先构建的访问控制策略库获取目标信息中状态集下各个信息分量对应的访问控制策略,并基于各个信息分量对应的访问控制策略对各个信息分量进行访问控制,和/或访问控制支持高并发访问;
其中,访问控制策略库中包括各个信息分量在各个状态或状态组合下的访问控制策略。
具体地,根据本申请的实施例,获取模块、生成模块、接收模块和控制模块中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。
或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
根据本申请的实施例,获取模块、生成模块、接收模块和控制模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。
或者,获取模块、生成模块、接收模块和控制模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
本申请实施例提供的细粒度动态授权的访问控制与高并发处理装置,通过获取目标信息,将信息划分为各个信息分量,并获取目标信息中状态集下各个信息分量对应的访问控制策略,可以根据当前各个信息分量对应的访问控制策略对各个信息分量进行访问控制,能够适应多变的业务流程和隐私需求,能够根据场景或者状态的变化对信息以及信息分量的控制策略进行及时的调整,提高了访问控制的细粒度和实时性,实现了访问控制的动态控制;此外本申请实施例的访问控制可以支持高并发访问,使得本申请的方法可以在高并发场景下使用进行高并发处理。
在一些实施例中,细粒度动态授权的访问控制与高并发处理装置还包括处理模块,处理模块具体用于:
基于访问控制策略确定当前用户对各个信息分量的访问权限;
基于访问权限在目标信息中确定第一信息分量和第二信息分量;
将目标信息中第二信息分量进行信息处理,并将处理后的目标信息发送至客户端;
其中,第一信息分量为允许当前用户访问的信息分量;第二信息分量为限制当前用户访问的信息分量。
在一些实施例中,细粒度动态授权的访问控制与高并发处理装置还包括构建模块,构建模块具体用于:
获取待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合;
设置各个访问场景的状态集中各个状态或状态组合的信息访问控制策略;信息访问控制策略包括各个信息分量的访问控制策略和各个信息分量组合的访问控制策略;
基于各个访问场景、各个状态或状态组合,以及各个访问控制策略之间的关联关系构建访问控制策略库。
在一些实施例中,细粒度动态授权的访问控制与高并发处理装置还包括设置模块,设置模块具体用于:
接收权限控制服务器用户的访问控制策略设置;
响应于所述权限控制服务器用户的访问控制策略设置,确定待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合;
所述权限控制服务器用户的访问控制策略设置的形式包括:基于规则、配置文件、按钮、圈出、勾选、标记、按键、滑轮、菜单、语音、视频、眼神、手势、文字、生物电信号、虚拟现实中的至少一种。
在一些实施例中,细粒度动态授权的访问控制与高并发处理装置还包括绑定模块,绑定模块具体用于:
获取访问控制策略库中任一状态集中的初始化状态;
分别将任一状态集对应的各个第三信息分量与在初始化状态下各个第三信息分量的访问控制策略进行绑定;第三信息分量为任一状态集对应的信息分量;
实时对任一状态集进行监控;
在任一状态集中状态改变的情况下,基于改变后的状态重新将当前状态下的各个第三信息分量与在当前状态下各个第三信息分量的访问控制策略进行绑定。
在一些实施例中,获取模块具体用于:
对业务服务器发送的待访问信息的信息状态通知请求进行解析,得到第一状态集;第一状态集为待访问信息当前对应的状态集;
其中,第一状态集包括当前用户在客户端的状态集和待访问信息在业务服务器的状态集。
在一些实施例中,生成模块具体用于:
在第一状态集中选取第二状态集;
基于第二状态集和/或第一信息访问索引生成第二信息查找请求;
其中,第二状态集中各个状态对应的访问控制策略随着第二状态集中状态的改变而改变;第一信息访问索引用于在权限控制服务器中获取第二状态集,和/或信息处理后的目标信息。
在一些实施例中,第一信息访问索引是对第二信息访问索引进行修改后得到的;
第二信息访问索引是文件服务器响应于客户端发送的第一信息访问请求生成的;
第二信息访问索引用于在文件服务器中获取目标信息。
在一些实施例中,通过第一信息访问索引,可以将业务服务器传送的第一状态集只保存在权限控制服务器中,不随其他信息发送至客户端,简化访问信息的地址与第一状态集之间的映射关系,实现并发。
在一些实施例中,上述方法中的待处理请求包括信息状态通知请求和信息访问请求,细粒度动态授权的访问控制与高并发处理装置还包括高并发模块,高并发模块具体用于:
基于待处理请求生成待处理元素;待处理元素包括参数和回调函数中的至少一种;
将待处理元素放入第一任务队列中,等待第一线程组中空闲的线程对待处理元素进行处理;
在当前处理结果中存在子任务的情况下,基于当前处理结果构建当前待处理元素;
控制第二线程组对当前待处理元素进行处理,得到新的处理结果;
基于新的处理结果对当前处理结果进行更新,直至当前处理结果中不存在子任务;
其中,权限控制服务器中包括多个线程组和多个处理器核,任一线程组中各个线程独立运行在不同的处理器核。
在一些实施例中,上述方法中的待处理请求包括第一待处理请求,第一待处理请求对应的第一任务为执行时间大于预设阈值的任务,高并发模块还具体用于:
响应于第一待处理请求,控制任务发起线程组在任务执行状态集中新建用于描述新开始任务执行状态的空间;任务执行状态集的形式包括用于描述任务执行状态的数据结构或任务完成状态列表中的至少一种;
控制任务状态获取线程组循环监测任务执行状态集中各个任务的执行状态,并及时处理任务执行状态集;
在监测到有新完成的任务的情况下,通知任务结束线程组对新完成的任务进行处理;
其中,任务结束线程组获取新完成的任务的方式包括基于任务状态获取线程组的通知获取、基于持续监测任务执行状态集获得或通过任务完成后的回调获得中的至少一种;
任务状态获取线程组和任务结束线程组为一个线程组或两个独立的线程组。
在此需要说明的是,本申请实施例提供的细粒度动态授权的访问控制与高并发处理装置,能够实现上述细粒度动态授权的访问控制与高并发处理方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
图13为本申请实施例提供的电子设备的结构示意图,如图13所示,该电子设备可以包括:处理器(Processor)1310、通信接口(Communications Interface)1320、存储器(Memory)1330和通信总线(Communications Bus)1340,其中,处理器1310,通信接口1320,存储器1330通过通信总线1340完成相互间的通信。处理器1310可以调用存储器1330中的逻辑命令,以执行上述方法,该方法应用于权限控制服务器,该方法包括:
获取待访问信息当前对应的状态集;
基于状态集和/或第一信息访问索引生成待访问信息的第二信息查找请求;
将第二信息查找请求发送至文件服务器,接收文件服务器返回的目标信息;
基于预先构建的访问控制策略库获取目标信息中状态集下各个信息分量对应的访问控制策略,并基于各个信息分量对应的访问控制策略对各个信息分量进行访问控制,和/或访问控制支持高并发访问;
其中,访问控制策略库中包括各个信息分量在各个状态或状态组合下的访问控制策略。
此外,上述的存储器中的逻辑命令可以通过软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供的电子设备中的处理器可以调用存储器中的逻辑指令,实现上述方法,其具体的实施方式与前述方法实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本申请实施例还提供一种非暂态计算机可读的存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法。
其具体的实施方式与前述方法实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如上述方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种细粒度动态授权的访问控制与高并发处理方法,其特征在于,应用于权限控制服务器,所述方法包括:
获取待访问信息当前对应的状态集;
基于所述状态集和/或第一信息访问索引生成所述待访问信息的第二信息查找请求;
将所述第二信息查找请求发送至文件服务器,接收所述文件服务器返回的目标信息;
基于预先构建的访问控制策略库获取所述目标信息中所述状态集下各个信息分量对应的访问控制策略,并基于各个信息分量对应的访问控制策略对各个信息分量进行访问控制,和/或所述访问控制支持高并发访问;
其中,所述访问控制策略库中包括各个信息分量在各个状态或状态组合下的访问控制策略。
2.根据权利要求1所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,所述获取所述目标信息中所述状态集下各个信息分量对应的访问控制策略之后,还包括:
基于所述访问控制策略确定当前用户对各个信息分量的访问权限;
基于所述访问权限在所述目标信息中确定第一信息分量和第二信息分量;
将所述目标信息中所述第二信息分量进行信息处理,并将处理后的目标信息发送至客户端;
其中,所述第一信息分量为允许所述当前用户访问的信息分量;所述第二信息分量为限制所述当前用户访问的信息分量。
3.根据权利要求1所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,所述访问控制策略库是基于如下步骤进行构建的:
获取待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合;
设置各个访问场景的状态集中各个状态或状态组合的信息访问控制策略;所述信息访问控制策略包括各个信息分量的访问控制策略和各个信息分量组合的访问控制策略;
基于各个访问场景、各个状态或状态组合,以及各个访问控制策略之间的关联关系构建所述访问控制策略库。
4.根据权利要求3所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,所述获取待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合,包括:
接收权限控制服务器用户的访问控制策略设置;
响应于所述权限控制服务器用户的访问控制策略设置,确定待设置的访问场景,以及各个访问场景的状态集中各个状态或状态组合;
所述权限控制服务器用户的访问控制策略设置的形式包括:基于规则、配置文件、按钮、圈出、勾选、标记、按键、滑轮、菜单、语音、视频、眼神、手势、文字、生物电信号、虚拟现实中的至少一种。
5.根据权利要求3所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,构建所述访问控制策略库之后,还包括:
获取所述访问控制策略库中任一状态集中的初始化状态;
分别将所述任一状态集对应的各个第三信息分量与在所述初始化状态下各个第三信息分量的访问控制策略进行绑定;所述第三信息分量为所述任一状态集对应的信息分量;
实时对所述任一状态集进行监控;
在所述任一状态集中状态改变的情况下,基于改变后的状态重新将当前状态下的各个第三信息分量与在当前状态下各个第三信息分量的访问控制策略进行绑定。
6.根据权利要求1所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,所述获取待访问信息当前对应的状态集,包括:
对业务服务器发送的所述待访问信息的信息状态通知请求进行解析,得到第一状态集;所述第一状态集为所述待访问信息当前对应的状态集;
其中,所述第一状态集包括当前用户在客户端的状态集和所述待访问信息在所述业务服务器的状态集。
7.根据权利要求6所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,所述基于所述状态集和/或第一信息访问索引生成所述待访问信息的第二信息查找请求,包括:
在所述第一状态集中选取第二状态集;
基于所述第二状态集和/或第一信息访问索引生成所述第二信息查找请求;
其中,所述第二状态集中各个状态对应的访问控制策略随着所述第二状态集中状态的改变而改变;所述第一信息访问索引用于在所述权限控制服务器中获取第二状态集,和/或信息处理后的目标信息。
8.根据权利要求7所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,所述第一信息访问索引是对第二信息访问索引进行修改后得到的;
所述第二信息访问索引是所述文件服务器响应于所述客户端发送的第一信息访问请求生成的;
所述第二信息访问索引用于在所述文件服务器中获取所述目标信息。
9.根据权利要求7所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,通过所述第一信息访问索引,可以将业务服务器传送的第一状态集只保存在权限控制服务器中,不随其他信息发送至客户端,简化访问信息的地址与第一状态集之间的映射关系,实现并发。
10.根据权利要求1至9任一项所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,所述方法中的待处理请求包括信息状态通知请求和信息访问请求;所述待处理请求是基于如下步骤进行处理的:
基于所述待处理请求生成待处理元素;所述待处理元素包括参数和回调函数中的至少一种;
将所述待处理元素放入第一任务队列中,等待第一线程组中空闲的线程对所述待处理元素进行处理;
在当前处理结果中存在子任务的情况下,基于所述当前处理结果构建当前待处理元素;
控制第二线程组对所述当前待处理元素进行处理,得到新的处理结果;
基于所述新的处理结果对所述当前处理结果进行更新,直至所述当前处理结果中不存在子任务;
其中,所述权限控制服务器中包括多个线程组和多个处理器核,任一线程组中各个线程独立运行在不同的处理器核。
11.根据权利要求1至9任一项所述的细粒度动态授权的访问控制与高并发处理方法,其特征在于,所述方法中的待处理请求包括第一待处理请求,所述第一待处理请求对应的第一任务为执行时间大于预设阈值的任务,所述第一待处理请求是基于如下步骤进行处理的:
响应于所述第一待处理请求,控制任务发起线程组在任务执行状态集中新建用于描述新开始任务执行状态的空间;所述任务执行状态集的形式包括用于描述任务执行状态的数据结构或任务完成状态列表中的至少一种;
控制任务状态获取线程组循环监测所述任务执行状态集中各个任务的执行状态,并及时处理所述任务执行状态集;
在监测到有新完成的任务的情况下,通知任务结束线程组对新完成的任务进行处理;
其中,所述任务结束线程组获取新完成的任务的方式包括基于任务状态获取线程组的通知获取、基于持续监测所述任务执行状态集获得或通过任务完成后的回调获得中的至少一种;
所述任务状态获取线程组和所述任务结束线程组为一个线程组或两个独立的线程组。
12.一种细粒度动态授权的访问控制与高并发处理装置,其特征在于,应用于权限控制服务器,所述装置包括:
获取模块,用于获取待访问信息当前对应的状态集;
生成模块,用于基于所述状态集和/或第一信息访问索引生成所述待访问信息的第二信息查找请求;
接收模块,用于将所述第二信息查找请求发送至文件服务器,接收所述文件服务器返回的目标信息;
控制模块,用于基于预先构建的访问控制策略库获取所述目标信息中所述状态集下各个信息分量对应的访问控制策略,并基于各个信息分量对应的访问控制策略对各个信息分量进行访问控制,和/或所述访问控制支持高并发访问;
其中,所述访问控制策略库中包括各个信息分量在各个状态或状态组合下的访问控制策略。
13.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述的细粒度动态授权的访问控制与高并发处理方法。
14.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至11任一项所述的细粒度动态授权的访问控制与高并发处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410246631.5A CN117828672B (zh) | 2024-03-05 | 2024-03-05 | 细粒度动态授权的访问控制与高并发处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410246631.5A CN117828672B (zh) | 2024-03-05 | 2024-03-05 | 细粒度动态授权的访问控制与高并发处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117828672A true CN117828672A (zh) | 2024-04-05 |
CN117828672B CN117828672B (zh) | 2024-05-28 |
Family
ID=90523114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410246631.5A Active CN117828672B (zh) | 2024-03-05 | 2024-03-05 | 细粒度动态授权的访问控制与高并发处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117828672B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180025180A1 (en) * | 2015-02-02 | 2018-01-25 | Indiana University Research And Technology Corporation | External resource control of mobile devices |
CN112035858A (zh) * | 2020-08-28 | 2020-12-04 | 中国建设银行股份有限公司 | Api访问控制方法、装置、设备及介质 |
CN112966280A (zh) * | 2021-03-12 | 2021-06-15 | 北京数字认证股份有限公司 | 数据处理方法、装置、服务器及数据管理系统 |
CN115189957A (zh) * | 2022-07-18 | 2022-10-14 | 浙江大学 | 一种工业控制系统主动可加载的访问控制引擎 |
-
2024
- 2024-03-05 CN CN202410246631.5A patent/CN117828672B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180025180A1 (en) * | 2015-02-02 | 2018-01-25 | Indiana University Research And Technology Corporation | External resource control of mobile devices |
CN112035858A (zh) * | 2020-08-28 | 2020-12-04 | 中国建设银行股份有限公司 | Api访问控制方法、装置、设备及介质 |
CN112966280A (zh) * | 2021-03-12 | 2021-06-15 | 北京数字认证股份有限公司 | 数据处理方法、装置、服务器及数据管理系统 |
CN115189957A (zh) * | 2022-07-18 | 2022-10-14 | 浙江大学 | 一种工业控制系统主动可加载的访问控制引擎 |
Non-Patent Citations (2)
Title |
---|
王晶;黄传河;王金海;: "一种面向云存储的动态授权访问控制机制", 计算机研究与发展, no. 04, 15 April 2016 (2016-04-15), pages 905 - 920 * |
蔡嘉勇;卿斯汉;刘伟;: "安全策略模型聚合性评估方法", 软件学报, no. 07, 15 July 2009 (2009-07-15), pages 1953 - 1966 * |
Also Published As
Publication number | Publication date |
---|---|
CN117828672B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11252252B2 (en) | Installable web applications | |
US12117970B2 (en) | Systems and methods for providing access to a data file stored at a data storage system | |
US11206451B2 (en) | Information interception processing method, terminal, and computer storage medium | |
TWI682653B (zh) | 短連結解析方法、裝置及設備 | |
US10623406B2 (en) | Access authentication for cloud-based shared content | |
US9648043B2 (en) | Services within reverse proxy servers | |
EP2771803B1 (en) | File fetch from a remote client device | |
US10637957B2 (en) | Dynamic runtime interface for device management | |
US20150341368A1 (en) | Authorized delegation of permissions | |
CN103036597B (zh) | 近距离设备间的资源分享方法和设备 | |
US11882154B2 (en) | Template representation of security resources | |
US11240291B2 (en) | Content snip capture and sharing | |
CN107315972B (zh) | 一种大数据非结构化文件动态脱敏方法及系统 | |
Aghaee et al. | Mashup development with HTML5 | |
US8352442B2 (en) | Determination of an updated data source from disparate data sources | |
US20170118224A1 (en) | Restricted content publishing with search engine registry | |
US20170006085A1 (en) | Information processing apparatus, information processing method, and non-transitory computer readable medium | |
CN117828672B (zh) | 细粒度动态授权的访问控制与高并发处理方法及装置 | |
US10412586B2 (en) | Limited-functionality accounts | |
JP6428011B2 (ja) | セキュリティ管理装置及びプログラム |
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 |