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

区块访问控制方法、鉴权方法、装置、设备和存储介质

文献发布时间:2023-06-19 18:32:25


区块访问控制方法、鉴权方法、装置、设备和存储介质

技术领域

本发明涉及互联网技术领域,尤其涉及区块访问控制方法、鉴权方法、装置、设备和存储介质。

背景技术

业务系统用于实现业务管理和信息管理规范化,能够高效地处理或展示业务相关信息。例如处理办公业务时,业务系统为办公系统;当处理新闻等信息展示业务时,业务系统可以是门户网站系统等。

相关技术中业务系统中集成多个业务区块以满足不同的业务需求,通常同一个业务需求可能需要多个不同的业务区块来实现。不同的用户的业务需求不同,进而,不同用户对业务区块的使用需求不同,因此不同的业务区块中均包含独立的访问权限信息。但是相关技术中,不同的用户显示界面中包含所有的业务区块,每个业务区块均需要进行鉴权过程,当业务区块较多时,鉴权时间较长,导致用户等待时间久,访问效率较低。

发明内容

本申请实施例的主要目的在于提出区块访问控制方法、鉴权方法、装置、设备和存储介质,自适应显示业务区块,提升页面的访问效率。

为实现上述目的,本申请实施例的第一方面提出了一种区块访问控制方法,应用于网络页面展示系统,所述网络页面展示系统展示的页面包括多个业务区块,并且对不同权限的用户展示的业务区块不同,所述方法包括:

获取用户的目标权限;

获取每个业务区块的区块权限;

根据所述目标权限和所述区块权限得到每个所述业务区块的合并权限;

对所述合并权限进行去重,以获取所述合并权限的去重权限;

根据所述去重权限和所述合并权限的长度,得到每个所述业务区块的权限信息;

根据所述权限信息显示所述用户的目标业务区块。

在一实施例中,所述区块权限包括至少一个用户权限;所述根据所述目标权限和所述区块权限得到每个所述业务区块的合并权限,包括:

生成第一权限数组;

将所述目标权限和每个所述区块权限转化成预设格式,得到目标权限参数和区块权限参数;

将所述目标权限参数和所述区块权限参数存入所述第一权限数组,得到所述合并权限。

在一实施例中,所述对所述合并权限进行去重,以获取所述合并权限的去重权限,包括:

生成去重权限数组,所述去重权限数组包括第一去重权限数组;

按照第一预设存储规则将所述合并权限中所述目标权限参数和所述区块权限参数存储在所述第一去重权限数组中,得到所述去重权限。

在一实施例中,所述按照第一预设存储规则将所述合并权限中所述目标权限参数和所述区块权限参数存储在所述第一去重权限数组中,包括:

获取第一存储元素值,所述第一存储元素值为按照预设顺序获取的所述目标权限参数或所述区块权限参数;

将所述第一存储元素值与所述第一去重权限数组中数组元素的值进行比较,若不存在重复,则按照数值大小将所述第一存储元素值写入所述第一去重权限数组,所述第一去重权限数组的数组大小加一;

否则,不写入所述第一存储元素值。

在一实施例中,所述去重权限数组还包括第二去重权限数组;若所述第一去重权限数组中元素总长度大于预设存储长度:

按照第二预设存储规则将所述合并权限中所述目标权限参数和所述区块权限参数存储在所述第二去重权限数组中,得到所述去重权限。

在一实施例中,所述将所述合并权限中所述目标权限参数和所述区块权限参数存储在所述第二去重权限数组中,包括:

获取第二存储元素值,所述第二存储元素值为所述目标权限参数或所述区块权限参数;

获取所述第二存储元素值的预设编码值;

将所述预设编码值与所述第二去重权限数组中数组元素的预设编码值进行比较,若不存在重复,则将所述第二存储元素值写入所述第二去重权限数组,所述第二去重权限数组的数组大小加一;

否则,不写入所述第二存储元素值。

在一实施例中,所述根据所述去重权限和所述合并权限的长度,得到每个所述业务区块的权限信息,包括:

获取所述合并权限的第一数组长度;

获取所述去重权限的第二数组长度;

若所述第一数组长度大于所述第二数组长度,则所述权限信息为有访问权限;

若所述第一数组长度等于所述第二数组长度,则所述权限信息为无访问权限。

在一实施例中,所述根据所述权限信息显示所述用户的目标业务区块,包括:

获取每个业务区块的权限信息;

将所述权限信息为有访问权限的业务区块作为目标业务区块;

根据所述目标业务区块生成布局信息;

根据所述布局信息显示所述目标业务区块。

在一实施例中,所述获取用户的目标权限,包括:

获取用户的登陆信息;

根据所述登陆信息获取所述用户的用户编号;

根据所述用户编号获取所述目标权限。

在一实施例中,所述获取每个业务区块的区块权限,包括:

获取业务区块的显示次序;

根据所述显示次序获得每个所述业务区块的区块权限。

在一实施例中,所述获取每个业务区块的区块权限之前,所述方法还包括:

获取配置权限,所述配置权限包括:第一权限和/或第二权限;

根据所述配置权限生成所述区块权限。

为实现上述目的,本申请实施例的第二方面提出了一种鉴权方法,包括:

获取用户的目标权限;

获取每个业务区块的区块权限;

根据所述目标权限和所述区块权限得到每个所述业务区块的合并权限;

对所述合并权限进行去重,以获取所述合并权限的去重权限;

根据所述去重权限和所述合并权限的长度,得到每个所述业务区块的权限信息。

为实现上述目的,本申请实施例的第三方面提出了一种区块访问控制装置,应用于网络页面展示系统,所述网络页面展示系统展示的页面包括多个业务区块,并且对不同权限的用户展示的业务区块不同,所述装置包括:

目标权限获取单元:用于获取用户的目标权限;

区块权限获取单元:用于获取每个业务区块的区块权限;

合并权限单元:用于根据所述目标权限和所述区块权限得到每个所述业务区块的合并权限;

权限去重单元:用于对所述合并权限进行去重,以获取所述合并权限的去重权限;

权限信息判断单元:用于根据所述去重权限和所述合并权限的长度,得到每个所述业务区块的权限信息;

业务区块显示单元:用于根据所述权限信息显示所述用户的目标业务区块。

为实现上述目的,本申请实施例的第四方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或第二方面所述的方法。

为实现上述目的,本申请实施例的第五方面提出了一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面所述的方法。

本申请实施例提出的区块访问控制方法、鉴权方法、装置、设备和存储介质,通过获取用户的目标权限和每个业务区块的区块权限,根据目标权限和区块权限得到每个业务区块的合并权限,对合并权限进行去重,以获取合并权限的去重权限,根据去重权限和合并权限的长度,得到每个业务区块的权限信息,根据权限信息显示用户的目标业务区块。本申请实施例根据去重权限和合并权限之间的数组长度关系得到权限信息,无需对目标权限和区块权限进行一一比较,进而降低权限比较的时间,避免因为权限访问导致响应时间太慢。并且根据用户的目标权限得到目标业务区块,从而可以为不同用户的显示界面显示其对应地目标业务区块。一方面避免每个用户的显示界面均需渲染所有的业务区块,降低渲染时间;另一方面降低显示界面的干扰信息,使得用户能够快速根据需求选定目标业务区块,提升业务系统的访问效率。

附图说明

图1是本发明实施例提供的区块访问控制方法中一应用场景的业务区块示意图。

图2a~图2c为图1应用场景中不同用户的用户界面显示示意图。

图3本发明实施例提供的区块访问控制方法的流程图。

图4为本发明实施例提供的区块访问控制方法中又一个应用场景中用户与部门的对应关系示意图。

图5为图4应用场景中业务区块示意图。

图6是图3中的步骤S110的流程图。

图7是图3中的步骤S120的流程图。

图8是图3中的步骤S130的流程图。

图9是图3中的步骤S140的流程图。

图10是图9中的步骤S142的流程图。

图11本发明又一实施例提供的区块访问控制方法的流程图。

图12是图3中的步骤S150的流程图。

图13是图3中的步骤S160的流程图。

图14a~图14b是图4应用场景中不同用户显示界面示意图。

图15本发明一实施例提供的鉴权方法的流程图。

图16是本发明又一实施例提供的区块访问控制装置结构框图。

图17是本发明实施例提供的电子设备的硬件结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。

业务系统用于实现业务管理和信息管理规范化,能够高效地处理或展示业务相关信息。例如处理办公业务时,业务系统为办公系统;当处理新闻等信息展示业务时,业务系统可以是门户网站系统等。

相关技术中业务系统中集成多个业务区块以满足不同的业务需求,通常同一个业务需求可能需要多个不同的业务区块来实现。不同的用户的业务需求不同,进而,不同用户对业务区块的使用需求不同,因此不同的业务区块中均包含独立的访问权限信息。但是相关技术中,不同的用户显示界面中包含所有的业务区块,每个业务区块均需要进行鉴权过程,当业务区块较多时,鉴权时间较长,导致用户等待时间久,访问效率较低。同时当用户访问无权限的区块会显示无权限的提示,此时需要返回重新选取,用户很难快速选定目标业务区块。

基于此,本发明实施例提供一种区块访问控制方法、鉴权方法、装置、设备和存储介质,根据去重权限和合并权限之间的数组长度关系得到权限信息,无需对目标权限和区块权限进行一一比较,进而降低权限比较的时间,避免因为权限访问导致响应时间太慢。并且根据用户的目标权限得到目标业务区块,从而可以为不同用户的显示界面显示其对应地目标业务区块。一方面避免每个用户的显示界面均需渲染所有的业务区块,降低渲染时间;另一方面降低显示界面的干扰信息,使得用户能够快速根据需求选定目标业务区块,提升业务系统的访问效率。

本发明实施例提供区块访问控制方法、鉴权方法、装置、设备和存储介质,具体通过如下实施例进行说明,首先描述本发明实施例中的区块访问控制方法。

本发明实施例提供的区块访问控制方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的计算机程序。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如支持区块访问控制的客户端,也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。其中,终端通过网络与服务器进行通信。该区块访问控制方法可以由终端或服务器执行,或由终端和服务器协同执行。

在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机或者智能手表等。此外,终端还可以是智能车载设备。该智能车载设备应用本实施例的区块访问控制方法提供相关的服务,提升驾驶体验。服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器;也可以是区块链系统中的服务节点,该区块链系统中的各服务节点之间形成组成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。服务器上可以安装区块访问控制系统的服务端,通过该服务端可以与终端进行交互,例如服务端上安装对应的软件,软件可以是实现区块访问控制方法的应用等,但并不局限于以上形式。终端与服务器之间可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者网络等通讯连接方式进行连接,本实施例在此不做限制。

本发明可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

为了便于理解本申请实施例,下面结合具体应用场景的例子对区块访问控制的过程进行简单介绍。

首先,本实施例的区块访问控制方法可以应用于网络页面展示系统,这里的网络页面展示系统展示的页面包括多个业务区块,并且对不同权限的用户展示的业务区块不同。可以理解的是,网络页面展示系统可以是在线网页系统,也可以是本地客户端系统。网络页面展示系统作为一种业务系统,用于实现业务管理和信息管理规范化,能够高效地处理或展示业务相关信息。例如处理办公业务时,业务系统为办公系统;当处理新闻等信息展示业务时,业务系统可以是门户网站系统等。

在一办公系统的应用场景中,参照图1,办公系统包括3个业务区块,分别是:区块1,区块2和区块3,不同的用户能够访问的业务区块不同,例如,区块1的访问人员是:用户1、用户3和用户4;区块2的访问人员是:用户1、用户2和用户4;区块3的访问人员是:用户2和用户3。则应用本申请实施例中的区块访问控制方法进行访问控制,针对每个用户进行自适应显示业务区块,参照图2a,用户1的用户界面显示区块1和区块2。参照图2b,用户2的用户界面显示区块2和区块3。参照图2c,用户3的用户界面显示区块1和区块3。参照图2a,用户4的用户界面如用户1,也显示区块1和区块2。

下面描述本发明实施例中的区块访问控制方法。

图3是本发明实施例提供的区块访问控制方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤S110至步骤S160。同时可以理解的是,本实施例对图3中步骤S110至步骤S160的顺序不做具体限定,可以根据实际需求调整步骤顺序或者减少、增加某些步骤。

步骤S110:获取用户的目标权限。

步骤S120:获取每个业务区块的区块权限。

例如一场景中,参照图4,该场景包含五个业务部门,其部门ID分别是:部门B1、部门B2和部门B3。

其中,每个部门包含4个用户,由于业务交叉,可能某一用户分属于多个部门,例如某一财务用户隶属于市场部门和财务部门。参照图4,用户与部门的对应关系分别是:

部门B1包含用户为:用户A1、用户A2、用户A3和用户A4;

部门B2包含用户为:用户A2、用户A4、用户A5和用户A6;

部门B3包含用户为:用户A4、用户A7、用户A8和用户A9;

在一实施例中,上述A1、A2、…、A9为用户ID,在该场景中,每个用户的用户ID是唯一不重复的。

参照图5,为上述场景中业务区块的示意图。该场景下包含3个业务区块,分别是区块Q1、区块Q2和区块Q3,每个业务区块包含不同的权限信息,用于对不同的用户进行权限限制。

其中,区块Q1对部门B3中所有用户均有权限,因此区块Q1的区块权限表示为:A4B3、A7B3、A8B3和A9B3。

区块Q2对部门B2、部门B3中的部分用户有权限,例如部门B2中用户A2和用户A4,部门B3中用户A8和用户A9,因此区块Q2的区块权限表示为:A2B2、A4B2、A8B3和A9B3。

区块Q3对部门B1中全部用户和部门B2中部分用户有权限,例如部门B2中用户A5和用户A6,因此区块Q3的区块权限表示为:A1B1、A2B1、A3B1、A4B1、A5B2和A6B2。

由上述可知,在该场景下不同用户的目标权限为:

用户A1的目标权限包括:A1B1;

用户A2的目标权限包括:A2B1、A2B2;

用户A3的目标权限包括:A3B1;

用户A4的目标权限包括:A4B1、A4B2和A4B3;

用户A5的目标权限包括:A5B2;

用户A6的目标权限包括:A6B2;

用户A7的目标权限包括:A7B3;

用户A8的目标权限包括:A8B3;

用户A9的目标权限包括:A9B3。

由上述可知,不同的用户包含不同部门的权限,对应于不同业务区块的权限,因此在一实施例中,可以建立预先保存用户信息的数据库,该数据库中包含用户ID与部门ID的对应关系以及每个业务区块的区块权限。该实施例中,可以利用唯一的用户ID和部门ID按照密钥生成规则,生成对应地字符串密钥作为区块权限,该字符串可以是整数的数字,得到的区块权限是唯一可区分的。

可以理解的是,上述区块权限的格式仅做示意,本申请实施例并不对区块权限的具体格式做限定。

在一实施例中,建立预先保存用户信息的数据库的过程具体是:首先获取每个业务区块的配置权限,然后根据配置权限生成每个业务区块对用的区块权限。这里的配置权限包括:第一权限和/或第二权限,其中第一权限为上述业务区块对不同部门的权限,第二权限为上述业务区块对不同用户的权限。因此在一实施例中,在配置某一业务区块的区块权限时,可以根据部门权限将该部门中所有用户的权限作为该区块权限的一部分,也可以直接将用户的权限作为该区块权限的一部分。

由上述可知,本申请实施例中每个业务区块的区块权限中包含不同用户的权限信息。

在一实施例中,参照图6,是一实施例示出的步骤S110的一种具体实现流程图,在本实施例中获取用户的目标权限的步骤S110,包括:

步骤S111:获取用户的登陆信息。

在一实施例中,用户的登录信息可以是账号密码或者用于进行身份验证的辅助信息,例如人脸识别、指纹识别等与用户协商记录在数据库的辅助信息。

步骤S112:根据登陆信息获取用户的用户编号。

在一实施例中,数据库中存储登录信息和用户编号之间的映射关系,根据上述步骤的登录信息能够得到唯一确定的用户编号,这里的用户编号可以是上述图4中的用户ID。

步骤S113:根据用户编号获取目标权限。

在一实施例中,根据用户编号获取该用户编号下所有的业务区块的相关权限构成目标权限。

在一实施例中,参照图7,是一实施例示出的步骤S120的一种具体实现流程图,在本实施例中获取每个业务区块的区块权限的步骤S120,包括:

步骤S121:获取业务区块的显示次序。

步骤S122:根据显示次序获得每个业务区块的区块权限。

在一实施例中,可以根据预先设定的显示次序获取业务区块的区块权限。例如,显示次序可以是从上至下,同一行从左至右的次序,本实施例对显示次序不做具体限定。

由上述可知,针对用户获取用户的目标权限,针对业务区块获取业务区块的区块权限。

步骤S130:根据目标权限和区块权限得到每个业务区块的合并权限。

在一实施例中,参照图8,是一实施例示出的步骤S130的一种具体实现流程图,在本实施例中根据目标权限和区块权限得到每个业务区块的合并权限的步骤S130,包括:

步骤S131:生成第一权限数组。

在一实施例中,针对每个业务区块均生成相对应的第一权限数组,用来存储目标权限和区块权限。

步骤S132:将目标权限和每个业务区块的区块权限转化成预设格式,得到目标权限参数和区块权限参数。

在一实施例中,由于要存储在数组中,因此可以将目标权限和区块权限转化成便于数组存储的格式,该格式即预设格式,例如预设格式可以是整数值。经过格式转化,根据目标权限得到对应的目标权限参数,根据区块权限得到对应的区块权限参数。可以理解的是,如果区块权限和目标权限本身就满足数组存储的格式,则预设格式为其本身的数据格式。

步骤S133:将目标权限参数和区块权限参数存入第一权限数组,得到合并权限。

在一实施例中,将上述格式合适的目标权限参数和区块权限参数逐一存储在第一权限数组中,得到合并权限。

参照图4和图5,以用户A2和用户A4为例进行说明。

区块Q1的区块权限表示为:A4B3、A7B3、A8B3和A9B3;区块Q2的区块权限表示为:A2B2、A4B2、A8B3和A9B3;区块Q3的区块权限表示为:A1B1、A2B1、A3B1、A4B1、A5B2和A6B2。

对于用户A2来说,用户A2的目标权限包括:A2B1和A2B2,因此:

区块Q1的合并权限数组表示为:{A4B3,A7B3,A8B3,A9B3,A2B1,A2B2};

区块Q2的合并权限表示为:{A2B2,A4B2,A8B3,A9B3,A2B1,A2B2};

区块Q3的合并权限表示为:{A1B1,A2B1,A3B1,A4B1,A5B2,A6B2,A2B1,A2B2}。

对于用户A4来说,用户A4的目标权限包括:A4B1、A4B2和A4B3,因此:

区块Q1的合并权限数组表示为:{A4B3,A7B3,A8B3,A9B3,A4B1,A4B2,A4B3};

区块Q2的合并权限表示为:{A2B2,A4B2,A8B3,A9B3,A4B1,A4B2,A4B3};

区块Q3的合并权限表示为:{A1B1,A2B1,A3B1,A4B1,A5B2,A6B2,A4B1,A4B2,A4B3}。

可以理解的是,上述区块权限和目标权限即经过格式转换后的区块权限参数和目标权限参数,本实施例对此仅作示意,不做具体限定。

由上述可知,对于用户来说,每个业务区块均能得到一个合并权限。

步骤S140:对合并权限进行去重,以获取合并权限的去重权限。

在一实施例中,在一实施例中,参照图9,是一实施例示出的步骤S140的一种具体实现流程图,在本实施例中对合并权限进行去重,以获取合并权限的去重权限的步骤S140,包括:

步骤S141:生成去重权限数组。

在一实施例中,进行合并权限去重采用Redis Set的数据格式,因此生成Set数据格式的去重权限数组。由于Redis Set的数据格式包含两种数据格式,一种是IntSet数据格式,另一种是HashTable数据格式,因此去重权限数组中包含第一去重权限数组和第二去重权限数组。

步骤S142:按照第一预设存储规则将合并权限中目标权限参数和区块权限参数存储在第一去重权限数组中,得到去重权限。

在一实施例中,第一预设存储规则包含两个限定条件,第一个限定条件是:如果目标权限参数和区块权限参数能够转化成Int整数型,则以IntSet数据格式存储在去重权限数组中;第二个限定条件是:当第一去重权限数组中的元素总长度需要小于等于预设存储长度。

在一实施例中,参照图10,是一实施例示出的步骤S142的一种具体实现流程图,在本实施例中按照第一预设存储规则将合并权限中目标权限参数和区块权限参数存储在第一去重权限数组中,得到去重权限的步骤S142,包括:

步骤S1421:获取第一存储元素值。

在一实施例中,第一存储元素值为按照预设顺序获取的目标权限参数或区块权限参数,这里的预设顺序为目标权限参数和区块权限参数按照由小到大的顺序排列得到,即按照由小到大的顺序依次获取目标权限参数或区块权限参数作为第一存储元素值。

步骤S1422:将第一存储元素值与第一去重权限数组中数组元素的值进行比较,判断是否需要写入。

在一实施例中,若第一存储元素值与第一去重权限数组中数组元素的值不存在重复,则按照数值大小将第一存储元素值写入第一去重权限数组,第一去重权限数组的数组大小加一。否则,不写入第一存储元素值。

在一实施例中,第一去重权限数据为IntSet数据格式的数组。IntSet数组中存储Int整数型数据,并且其存储数据的时候是有序存储,例如按照数组下标,数据值由小变大。

下面结合图4和图5,以用户A2对区块Q2的权限校验过程为例说明上述的去重过程。

区块Q2的合并权限表示为:{A2B2,A4B2,A8B3,A9B3,A2B1,A2B2},假设区块Q2的合并权限中的数值按照从小到大排列之后得到:

{A2B2,A2B2,A2B1,A8B3,A4B2,A9B3}。

构造区块Q2的第一去重权限数组,表示为S2。

第一步:

S2={}

第二步:

第一存储元素值为:A2B2,将其写入S2中,S2={A2B2}。

第三步:

第一存储元素值为:A2B2,将其与S2中数组元素A2B2比较,发现存在重复,则不写入这一步的第一存储元素值,S2={A2B2}。

第四步:

第一存储元素值为:A2B1,将其与S2中数组元素A2B2比较,发现不重复,则写入这一步的第一存储元素值,S2={A2B2,A2B1}。

第五步:

第一存储元素值为:A8B3,将其与S2中数组元素A2B2、A2B1逐一比较,发现不重复,则写入这一步的第一存储元素值,S2={A2B2,A2B1,A8B3}。

第六步:

第一存储元素值为:A4B2,将其与S2中数组元素A2B2、A2B1和A8B3逐一比较,发现不重复,则写入这一步的第一存储元素值,S2={A2B2,A2B1,A8B3,A4B2}。

第七步:

第一存储元素值为:A9B3,将其与S2中数组元素A2B2、A2B1、A8B3和A4B2逐一比较,发现不重复,则写入这一步的第一存储元素值,S2={A2B2,A2B1,A8B3,A4B2,A9B3}。

至此得到区块Q2的第一去重权限数组S2,表示为:S2={A2B2,A2B1,A8B3,A4B2,A9B3},第一去重权限数组S2中元素按照数组下标由小到大,数组元素数值也从小到大排列,并且其中不存在重复的数组元素。

上述过程中,如果第一预设存储规则中两个限定条件其一不满足,例如目标权限参数和区块权限参数不能转化成Int整数型,或者第一去重权限数组中的元素长度需要大于预设存储长度。则按照第二预设存储规则将合并权限中目标权限参数和区块权限参数存储在第二去重权限数组中,得到去重权限,其中第二去重权限数组的数据格式为HashTable数据格式。

在一实施例中,去重权限数组在进行去重时,针对存入数组中的目标权限参数和区块权限参数进行格式转换,如果能转化成Int型,则将其存储在第一去重权限数组IntSet中,如果不能转化格式,则以HashTable 数据格式存储在第二去重权限数组中。另外,由于IntSet数据格式对存储的数组元素数量有限定,如果以IntSet数据格式存储的数组元素的元素总长度达到预设存储长度时,后续的存储均以HashTable 的数据格式进行存储。

可以理解的是,第一去重权限数组中数组元素长度不等于第一去重权限数组中元素的个数。例如第一去重权限数组中数组元素为Int16型整数,则每一个数组元素的长度为16,假设其中包含5个数组元素,则该第一去重权限数组的数组元素总长度为16*5=80。

在一实施例中,预设存储长度为512,即当第一去重权限数组的数组元素总长度大于512时,后续的目标权限参数或区块权限参数以HashTable的数据格式存储在第二去重权限数组中。

在一实施例中,参照图11,按照第二预设存储规则将合并权限中目标权限参数和区块权限参数存储在第二去重权限数组中,得到去重权限的过程包括以下步骤。

步骤S1110:获取第二存储元素值。

在一实施例中,第二去重权限数组为HashTable形式存储的数组,其中,第二存储元素值为目标权限参数或区块权限参数。

步骤S1120:获取第二存储元素值的预设编码值。

在一实施例中,预设编码值即按照预设哈希函数计算的目标权限参数或区块权限参数的哈希值。该实施例中,哈希值用于计算对应的第二存储元素值在第二去重权限数组中的存储位置。

步骤S1130:将预设编码值与第二去重权限数组中数组元素的预设编码值进行比较,判断是否写入。

在一实施例中,首先获取第二去重权限数组中所有数组元素的预设编码值,即哈希值,将第二存储元素值的预设编码值与第二去重权限数组中其他数组元素的预设编码值不存在重复,则将第二存储元素值写入第二去重权限数组,第二去重权限数组的数组大小加一;否则,不写入第二存储元素值。

可以理解的是,通过上述过程,利用Redis Set数据格式得到的去重权限数组中不包含重复元素。由于Redis Set是利用哈希表进行计算,哈希表其实就是一个一维数组,这样的数据结构解决了数组的增删元素的不足和链表的查询效率的不足,在计算时只需要计算一次哈希值就能找到对应数据,如果出现哈希值相同,则重回链表,对比链表的元素。因此本申请实施例利用Redis Set数据格式得到去重权限数组能够提高处理效率。

步骤S150:根据去重权限和合并权限的长度,得到每个业务区块的权限信息。

在一实施例中,参照图12,是一实施例示出的步骤S150的一种具体实现流程图,在本实施例中根据去重权限和合并权限的长度,得到每个业务区块的权限信息的步骤S150,包括:

步骤S151:获取合并权限的第一数组长度。

步骤S152:获取去重权限的第二数组长度。

步骤S153:若第一数组长度大于第二数组长度,则权限信息为有访问权限。

步骤S154:若第一数组长度等于第二数组长度,则权限信息为无访问权限。

在一实施例中,如果某一业务区块对用户具有权限,则该业务区块的区块权限中包含该用户对该业务区块的目标权限,因此合并权限中包含业务区块的区块权限和用户的目标权限,利用上述过程进行去重之后得到的该业务区块的去重权限数组中不包含重复的数组元素,因此可以理解的是,如果某一业务区块对用户具有权限,则合并数组中包含两组相同的目标权限,去重权限数组中包含一组目标权限。

例如,在一实施例中,参照上述实施例,以用户A2和用户A4为例进行说明。

对于用户A2来说,用户A2的目标权限包括:A2B1和A2B2,因此:

区块Q1的合并权限数组表示为:{A4B3,A7B3,A8B3,A9B3,A2B1,A2B2},去重权限数组表示为:{A4B3,A7B3,A8B3,A9B3,A2B1,A2B2}。

区块Q2的合并权限表示为:{A2B2,A4B2,A8B3,A9B3,A2B1,A2B2},去重权限数组表示为:{A2B2,A4B2,A8B3,A9B3,A2B1}。

区块Q3的合并权限表示为:{A1B1,A2B1,A3B1,A4B1,A5B2,A6B2,A2B1,A2B2},去重权限数组表示为:{A1B1,A2B1,A3B1,A4B1,A5B2,A6B2,A2B2}。

由上述可知,对于用户A2来说,区块Q1的合并权限数组的第一数组长度为6,去重权限数组的第二数组长度为6;区块Q2的合并权限数组的第一数组长度为6,去重权限数组的第二数组长度为5;区块Q3的合并权限数组的第一数组长度为8,去重权限数组的第二数组长度为7。

对于用户A4来说,用户A4的目标权限包括:A4B1、A4B2和A4B3,因此:

区块Q1的合并权限数组表示为:{A4B3,A7B3,A8B3,A9B3,A4B1,A4B2,A4B3},去重权限数组表示为:{A4B3,A7B3,A8B3,A9B3,A4B1,A4B2}。

区块Q2的合并权限表示为:{A2B2,A4B2,A8B3,A9B3,A4B1,A4B2,A4B3},去重权限数组表示为:{A2B2,A4B2,A8B3,A9B3,A4B1,A4B3}。

区块Q3的合并权限表示为:{A1B1,A2B1,A3B1,A4B1,A5B2,A6B2,A4B1,A4B2,A4B3},去重权限数组表示为:{A1B1,A2B1,A3B1,A4B1,A5B2,A6B2,A4B2,A4B3}。

对于用户A4来说,区块Q1的合并权限数组的第一数组长度为7,去重权限数组的第二数组长度为6;区块Q2的合并权限数组的第一数组长度为7,去重权限数组的第二数组长度为6;区块Q3的合并权限数组的第一数组长度为9,去重权限数组的第二数组长度为8。

由上述可知,对于用户A2来说,区块Q1的第一数组长度等于第二数组长度,则对该业务区块无访问权限;区块Q2的第一数组长度大于第二数组长度,则对该业务区块有访问权限为5;区块Q3的第一数组长度大于第二数组长度,则对该业务区块有访问权限。

对于用户A4来说,区块Q1的第一数组长度大于第二数组长度,则对该业务区块有访问权限;区块Q2的第一数组长度大于第二数组长度,则对该业务区块有访问权限;区块Q3的第一数组长度大于第二数组长度,则对该业务区块有访问权限。

相关技术中,例如门户网站的界面包含的很多个业务区块,由于业务区块对不同用户的权限不同,因而每个业务区块都需要记载所有有访问权限的用户的信息,而不同的用户又可能拥有多个业务区块的权限,因此,在做权限校验时,对多套权限信息进行对比确认,这种对比周期较长,不同的业务区块又独立计算,导致访问时需要较长的时间进行计算,计算完之后对所有区块进行页面渲染,耗时较久。当门户网站或者办公系统在浏览器中采用Javascript语言进行开发时,由于Javascript语言结构会带来遍历速度慢的问题,如果用户数据量较大时,随着数据量增加,计算耗时也成倍增加,长时间的无响应甚至线程卡死页面白屏,在网页中不能接收数据量较大的健全过程,导致用户等待时间较长,影响用户的使用体验。

而本申请实施例通过比较合并权限的第一数组长度和去重权限的第二数组长度的大小关系,间接得到用户对业务区块是否有访问权限,并非传统的在每个区块权限中对用户的目标权限进行一一查找对比确认的方式直接得知该用户是否有权限,只需要对数组的大小进行判断即可,能够较大提升计算速度,降低cpu使用率,并且只对用户有权限的业务区块进行针对性渲染,进一步提升访问效率,达到了使页面不卡顿,不白屏,快速渲染的效果。

在一实施例中,对本申请实施例的得知用户对业务区块是否有访问权限的间接方式和相关技术中直接方式的运算效率做了比对,参照下表。

由上表可见,本申请实施例的间接方式耗时比相关技术中直接查找方式耗时低很多,并且随着数据量的增加,这种耗时优化逐渐明显,即优化倍率越来越高,可见,本申请实施例更适用于较大数据量的情况。

步骤S160:根据权限信息显示用户的目标业务区块。

在一实施例中,参照图13,是一实施例示出的步骤S160的一种具体实现流程图,在本实施例中根据权限信息显示用户的目标业务区块的步骤S160,包括:

步骤S161:获取每个业务区块的权限信息。

在一实施例中,业务区块的权限信息即该用户对该业务区块的访问权限,包括有访问权限和无访问权限。

步骤S162:将权限信息为有访问权限的业务区块作为目标业务区块。

在一实施例中,根据用户对业务区块的访问权限,筛选该用户有访问权限的业务区块作为目标业务区块。

步骤S163:根据目标业务区块生成布局信息。

步骤S164:根据布局信息显示目标业务区块。

在一实施例中,由于每个用户可能显示的目标业务区块不同,因此根据目标业务区块的数量,预先设定对应数量的布局信息,例如只有一个目标业务区块时,布局信息可以是:目标业务区块上下方向和左右方向均居中,或者目标业务区块左右方向居中和上方向置顶等。如果有两个目标业务区块时,布局信息可以是:两个目标业务区块上下方向居中,左右方向上平均分隔,或者两个目标业务区块上下方向平均分隔,左右方向上居中等。在一实施例中,也可以预先根据业务区块的数量和大小生成多组布局信息,上述步骤得到目标业务区块的数量后,根据预先设定的布局信息显示目标业务区块。可以理解的是,为了提升渲染速度,也可以在所有业务区块的原始布局下,在目标业务区块的位置显示目标业务区块即可,本实施例对目标业务区块的布局信息不做具体限定。

参照图14a,为上述实施例中用户A2的显示界面,图14b为用户A4的显示界面。

由于用户A2对区块Q1无访问权限,对区块Q2和区块Q3有访问权限。用户A4对区块Q1、区块Q2和区块Q3均有访问权限。因此,图14a为用户A2显示区块Q2和区块Q3,图14b为用户A4显示区块Q1、区块Q2和区块Q3。

本发明实施例提供的技术方案,通过获取用户的目标权限和每个业务区块的区块权限,根据目标权限和区块权限得到每个业务区块的合并权限,对合并权限进行去重,以获取合并权限的去重权限,根据去重权限和合并权限的长度,得到每个业务区块的权限信息,根据权限信息显示用户的目标业务区块。

本申请实施例根据去重权限和合并权限之间的数组长度关系得到权限信息,无需对目标权限和区块权限进行一一比较,进而降低权限比较的时间,避免因为权限访问导致响应时间太慢。并且根据用户的目标权限得到目标业务区块,从而可以为不同用户的显示界面显示其对应地目标业务区块。一方面避免每个用户的显示界面均需渲染所有的业务区块,降低渲染时间;另一方面降低显示界面的干扰信息,使得用户能够快速根据需求选定目标业务区块,提升业务系统的访问效率。

本发明实施例还提供一种鉴权方法,参照图15,方法流程包括:

步骤S1510:获取用户的目标权限;

步骤S1520:获取每个业务模块的模块权限;

步骤S1530:根据目标权限和模块权限得到每个业务模块的合并权限;

步骤S1540:对合并权限进行去重,以获取合并权限的去重权限;

步骤S1550:根据去重权限和合并权限的长度,得到每个业务模块的权限信息。

可以理解的是,本申请实施例的鉴权方法可以用在多种业务系统中,该业务系统中包含不同的业务模块。其中,业务模块可以是如前述实施例中的业务区块,也可以是业务系统内部的功能模块,用户的权限不同,对应能访问的业务模块不同,因此可以利用本实施例的鉴权方法对不同区块或者功能模块的权限进行快速鉴权,提高业务系统的访问效率。

示例性的,本申请实施例的鉴权方法可应用于如前述的网络页面展示系统时,具体实施方式与上述区块访问控制方法的具体实施方式基本一致,相关说明请参照前述实施例说明,在此不再赘述。

本发明实施例还提供一种区块访问控制装置,可以实现上述区块访问控制方法,参照图16,该装置包括:

目标权限获取单元1610:用于获取用户的目标权限。

区块权限获取单元1620:用于获取每个业务区块的区块权限。

合并权限单元1630:用于根据目标权限和区块权限得到每个业务区块的合并权限。

权限去重单元1640:用于对合并权限进行去重,以获取合并权限的去重权限。

权限信息判断单元1650:用于根据去重权限和合并权限的长度,得到每个业务区块的权限信息。

业务区块显示单元1660:用于根据权限信息显示用户的目标业务区块。

本实施例的区块访问控制装置的具体实施方式与上述区块访问控制方法的具体实施方式基本一致,在此不再赘述。

本发明实施例还提供了一种电子设备,包括:

至少一个存储器;

至少一个处理器;

至少一个程序;

所述程序被存储在存储器中,处理器执行所述至少一个程序以实现本发明实施上述的区块访问控制方法。该电子设备可以为包括手机、平板电脑、个人数字助理(PersonalDigital Assistant,简称PDA)、车载电脑等任意智能终端。

请参阅图17,图17示意了另一实施例的电子设备的硬件结构,电子设备包括:

处理器1701,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明实施例所提供的技术方案;

存储器1702,可以采用ROM(ReadOnlyMemory,只读存储器)、静态存储设备、动态存储设备或者RAM(RandomAccessMemory,随机存取存储器)等形式实现。存储器1702可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1702中,并由处理器1701来调用执行本发明实施例的区块访问控制方法;

输入/输出接口1703,用于实现信息输入及输出;

通信接口1704,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和

总线1705,在设备的各个组件(例如处理器1701、存储器1702、输入/输出接口1703和通信接口1704)之间传输信息;

其中处理器1701、存储器1702、输入/输出接口1703和通信接口1704通过总线1705实现彼此之间在设备内部的通信连接。

本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述区块访问控制方法。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本发明实施例提出的区块访问控制方法、区块访问控制装置、电子设备、存储介质,通过获取用户的目标权限和每个业务区块的区块权限,根据目标权限和区块权限得到每个业务区块的合并权限,对合并权限进行去重,以获取合并权限的去重权限,根据去重权限和合并权限的长度,得到每个业务区块的权限信息,根据权限信息显示用户的目标业务区块。本申请实施例根据去重权限和合并权限之间的数组长度关系得到权限信息,无需对目标权限和区块权限进行一一比较,进而降低权限比较的时间,避免因为权限访问导致响应时间太慢。并且根据用户的目标权限得到目标业务区块,从而可以为不同用户的显示界面显示其对应地目标业务区块。一方面避免每个用户的显示界面均需渲染所有的业务区块,降低渲染时间;另一方面降低显示界面的干扰信息,使得用户能够快速根据需求选定目标业务区块,提升业务系统的访问效率。

本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。

以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

相关技术
  • 硬件设备的鉴权方法、装置、设备及存储介质
  • ACL访问控制策略的分析方法、装置、设备及存储介质
  • 一种鉴权方法、电子设备及计算机可读存储介质
  • 区块链的数据存储方法、装置、区块链节点及存储介质
  • 用于区块链网络的区块生成方法、同步方法、存储介质、计算设备
  • 鉴权方法、用户设备、鉴权装置、鉴权服务器和存储介质
  • 鉴权方法、用户设备、鉴权装置、鉴权服务器和存储介质
技术分类

06120115600130