基于消息队列的行列权限管理的方法系统、电子设备及存储介质转让专利

申请号 : CN201911418687.X

文献号 : CN111181976B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钟斌

申请人 : 深圳云天励飞技术股份有限公司

摘要 :

本申请实施例公开了基于消息队列的行列权限管理的方法及相关装置的方法,方法包括:所述消息接收端MQ接收初始消息,并且向所述消息重生模块发送所述初始消息;所述消息重生模块接收来自所述MQ服务接口网关发送的目标用户的订阅信息;所述消息重生模块接收来自所述权限配置模块发送的所述目标用户的行列权限信息;所述消息重生模块接收所述初始消息,并根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,并使用所述主题路由单元向所述消息发送端MQ发送所述目标消息;所述消息发送端MQ在接收所述目标消息后,向目标用户端发送所述目标消息。采用本申请,既保障了MQ的安全性,又不破坏MQ的原生特性。

权利要求 :

1.一种基于消息队列的行列权限管理的方法,其特征在于,应用于权限管理系统,所述权限管理系统包括消息接收端MQ模块,消息重生模块、权限配置模块、MQ服务接口网关与消息发送端MQ模块,所述方法包括:所述消息接收端MQ模块接收初始消息,并且向所述消息重生模块发送所述初始消息;

所述消息重生模块接收来自所述MQ服务接口网关发送的目标用户的订阅信息;

所述消息重生模块接收来自所述权限配置模块发送的所述目标用户的行列权限信息;

所述消息重生模块接收所述初始消息,并根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,并使用所述主题路由单元向所述消息发送端MQ模块发送所述目标消息;

所述消息发送端MQ模块在接收所述目标消息后,向目标用户端发送所述目标消息;

其中,所述消息重生模块包括用户订阅主题路由单元,目标用户权限计算单元,消息生成单元,所述消息重生模块根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,包括:所述用户订阅主题路由单元监听多个主题信息的路由请求,在监听到第一主题信息的路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元;

所述目标用户权限计算单元根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息,并向所述消息生成单元发送所述目标用户的权限结果信息;

所述消息生成单元接收所述目标用户的权限结果信息,并根据所述目标用户的权限结果信息生成目标消息与主题路由单元。

2.根据权利要求1所述的方法,其特征在于,所述用户订阅主题路由单元包括主题路由信息表与主题路由执行子单元,所述用户订阅主题路由单元监听多个主题信息的路由请求,在监听到第一主题信息的路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元,包括:根据多个用户的订阅信息建立所述主题路由信息表,所述主题路由信息表中多个主题中的每一个主题对应至少一个用户信息,所述多个用户的订阅信息中包括所述目标用户的订阅信息;

所述主题路由执行子单元监听多个主题信息的路由请求,在监听到所述第一主题信息的路由请求时,查找所述主题路由信息表中所述第一主题信息的路由表项;

遍历所述第一主题信息的路由表项,若在所述第一主题信息的路由表项获取到所述目标用户的信息,则将所述第一主题信息路由至所述目标用户权限计算单元。

3.根据权利要求1所述的方法,其特征在于,所述目标用户权限计算单元包括用户权限缓存子单元、行权限过滤子单元、列权限过滤子单元,所述目标用户权限计算单元根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息,包括:所述用户权限缓存子单元缓存所述目标用户的行列权限信息,所述目标用户的行列权限信息来自于所述权限配置模块,所述目标用户的行列权限信息包括所述目标用户的行权限信息与所述目标用户的列权限信息;

所述行权限过滤子单元根据所述目标用户的行权限信息过滤所述第一主题信息,得到授权的行权限信息;

所述列权限过滤子单元根据所述目标用户的列权限信息过滤所述第一主题信息,得到授权的列权限信息;

根据所述授权的行权限信息与所述授权的列权限信息得到所述目标用户的权限结果信息。

4.根据权利要求3所述的方法,其特征在于,所述行权限过滤子单元根据所述目标用户的行权限信息过滤所述第一主题信息,得到授权的行权限信息,包括:所述目标用户的行权限信息包含三个层级,第一层级为用户ID,第二层级为主题ID,第三层级为数据源ID,所述用户ID对应至少一个主题ID,所述一个主题ID对应至少一个数据源ID;

所述行权限过滤子单元遍历所述第一主题信息中的多个数据源ID,比较所述第一主题信息中的多个数据源ID与所述目标用户的行权限信息中的数据源ID;

在所述第一主题信息中的第一数据源ID匹配所述目标用户的行权限信息中的数据源ID时,标记所述第一主题信息中的第一数据源ID为授权的行权限信息;

在所述第一主题信息中的第二数据源ID不匹配所述目标用户的行权限信息中的数据源ID时,将所述第一主题信息中的第二数据源ID从所述第一主题信息中剔除;

将所述第一主题信息中的第一数据源ID作为授权的行权限信息与所述用户ID关联起来进行存储。

5.根据权利要求3所述的方法,其特征在于,所述列权限过滤子单元根据所述目标用户的列权限信息过滤所述第一主题信息,得到授权的列权限信息,包括:所述目标用户列权限信息包含三个层级,第一层级为用户ID,第二层级为主题ID,第三层级为主题ID对应的字段信息,所述用户ID对应至少一个主题ID,所述一个主题ID对应至少一个字段信息;

所述列权限过滤子单元遍历所述第一主题信息中的多个字段信息,比较所述第一主题信息中的多个字段信息与所述目标用户的列权限信息中的字段;

在所述第一主题信息中的第一字段匹配所述目标用户的列权限信息中的字段时,标记所述第一主题信息中的第一字段为授权的列权限信息;

在所述第一主题信息中的第二字段不匹配所述目标用户的列权限信息中的字段时,将所述第一主题信息中的第二字段从所述第一主题信息中剔除;

将所述第一主题信息中的第一字段作为授权的列权限信息与所述用户ID关联起来进行存储。

6.根据权利要求1所述的方法,其特征在于,所述消息生成单元包括主题管理子单元与主题消息发送子单元,所述消息生成单元接收所述目标用户的权限结果信息,并根据所述目标用户的权限结果信息生成所述目标消息与主题路由单元,包括:所述主题管理子单元接收来自所述目标用户权限计算单元发送的所述目标用户的权限结果信息,并从所述目标用户的权限结果信息获取目标用户ID以及目标用户ID对应的第一主题ID;

所述主题管理子单元根据所述目标用户ID和所述第一主题ID查询包含所述目标用户ID和所述第一主题ID的主题路由单元信息,若未查询到所述主题路由单元信息,则生成包含所述目标用户ID和所述第一主题ID的主题路由单元信息;

所述主题消息发送子单元监听消息发送请求,在获取所述消息发送请求后,获取所述目标用户的权限结果信息,对所述目标用户的权限结果信息进行重组,生成目标消息,所述目标消息为目标用户ID包含的第一主题信息中被授权的行列信息。

7.一种权限管理系统,所述权限管理系统包括消息接收端MQ模块,消息重生模块、权限配置模块、MQ服务接口网关与消息发送端MQ模块,其中:所述消息接收端MQ模块,用于接收初始消息,并且向所述消息重生模块发送所述初始消息;

所述消息重生模块,用于接收来自所述MQ服务接口网关发送的目标用户的订阅信息;

接收来自所述权限配置模块发送的所述目标用户的行列权限信息;接收所述初始消息,并根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,并使用所述主题路由单元向所述消息发送端MQ模块发送所述目标消息;

消息发送端MQ模块,用于在接收所述目标消息后,向目标用户端发送所述目标消息;

其中,所述消息重生模块包括用户订阅主题路由单元,目标用户权限计算单元,消息生成单元,所述用户订阅主题路由单元,用于监听多个主题信息的路由请求,在监听到第一主题信息的路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元;

所述目标用户权限计算单元,用于根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息,并向所述消息生成单元发送所述目标用户的权限结果信息;

所述消息生成单元,用于接收所述目标用户的权限结果信息,并根据所述目标用户的权限结果信息生成目标消息与主题路由单元。

8.一种电子设备,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1‑6任一项所述的方法中的步骤的指令。

9.一种计算机可读存储介质,其特征在于,

存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1‑6任一项所述的方法。

说明书 :

基于消息队列的行列权限管理的方法系统、电子设备及存储

介质

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种基于消息队列的行列权限管理的方法及相关装置。

背景技术

[0002] 在常见的服务化架构中,消息队列(MQ)已经是个被广泛使用的基础设施级别的组件。在很多软件系统中,MQ已经成为整个软件系统运行的核心,有90%的跨组件通信流量都承载在消息队列上。MQ主要完成以下核心职责:组件内的交互与通信,衔接软件系统内部处理流程,以及通过消息的输入与输出实现软件系统与外部的交互。
[0003] 但正因为MQ的运用日益广泛及其重要的地位,MQ安全性问题也凸显出来。即使有基于认证的安全性,但是对权限的管理只具备粗层次的管理,而精度不足。难以实现在不破坏MQ本身特性的基础上,保障MQ的安全性。

发明内容

[0004] 本申请实施例提供了一种既能保障MQ的安全性,又不破坏MQ的原生特性的基于消息队列的行列权限管理的方法及相关装置。
[0005] 第一方面,一种基于消息队列的行列权限管理的方法,其特征在于,应用于权限管理系统,所述权限管理系统包括消息接收端消息队列MQ,消息重生模块、权限配置模块、MQ服务接口网关与消息发送端MQ,所述方法包括:
[0006] 所述消息接收端MQ接收初始消息,并且向所述消息重生模块发送所述初始消息;
[0007] 所述消息重生模块接收来自所述MQ服务接口网关发送的目标用户的订阅信息;
[0008] 所述消息重生模块接收来自所述权限配置模块发送的所述目标用户的行列权限信息;
[0009] 所述消息重生模块接收所述初始消息,并根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,并使用所述主题路由单元向所述消息发送端MQ发送所述目标消息;
[0010] 所述消息发送端MQ在接收所述目标消息后,向目标用户端发送所述目标消息。
[0011] 第二方面,一种基于消息队列的行列权限管理装置,其特征在于,应用于权限管理系统,所述权限管理系统包括消息接收端消息队列MQ,消息重生模块、权限配置模块、MQ服务接口网关与消息发送端MQ,所述行列权限管理装置包括通信单元与处理单元,其中:
[0012] 所述处理单元,用于控制所述消息接收端MQ接收初始消息,并且向所述消息重生模块发送所述初始消息;
[0013] 所述处理单元,还用于控制所述消息重生模块接收来自所述MQ服务接口网关发送的目标用户的订阅信息;
[0014] 所述处理单元,还用于控制所述消息重生模块接收来自所述权限配置模块发送的所述目标用户的行列权限信息;
[0015] 所述处理单元,还用于控制所述消息重生模块接收所述初始消息,并根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,并使用所述主题路由单元向所述消息发送端MQ发送所述目标消息;
[0016] 所述处理单元,还用于控制所述消息发送端MQ在接收所述目标消息后,向目标用户端发送所述目标消息。
[0017] 第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。
[0018] 第四方面,本申请实施例提供了一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行如上述第一方面至第三方面以及任一种可选的实现方式的方法。
[0019] 第五方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
[0020] 第六方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
[0021] 可见,本申请实施例中通过消息接收端MQ与消息发送端MQ的双实例结构部署,并在两端之间,通过设置消息重生模块、权限配置模块、MQ服务接口网关联合起来管理消息队列的行列权限。较之于单实例原生的MQ,对于消息的生产者以及消息的消费者而言,依然是消息的生产与消息的接收,即实现了权限的管理,又不会对消息的生产者以及消息的消费者增加额外的资源消耗,从而权限的管理过程既保障了MQ的安全性,又不破坏MQ的原生特性。

附图说明

[0022] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023] 图1是本申请实施例提供的权限管理系统的结构示意图;
[0024] 图2A是本申请实施例提供的一种基于消息队列的权限管理方法的流程示意图;
[0025] 图2B是本申请实施例提供的一种消息重生模块的功能单元示意图;
[0026] 图2C是本申请实施例提供的一种行权限的缓存结构示意图;
[0027] 图2D是本申请实施例提供的一种列权限的缓存结构示意图;
[0028] 图3是本申请实施例提供的另一种基于消息队列的权限管理方法的流程示意图;
[0029] 图4是本申请实施例提供的一种行列权限管理装置的功能单元示意图;
[0030] 图5是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

[0031] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0032] 本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
[0033] 在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0034] 目前现有的MQ权限管理方法,即使有基于认证的安全性,但是对权限的管理只具备粗层次的管理,而精度不足。或者是在MQ之外增加一层安全机制,但是不仅权限管理的逻辑复杂,还影响了MQ本身的分布式特性定,极大地削弱了MQ的均衡性,动态扩展性以及高可用性等。而且如果由消息的输出端对权限进行处理,又增加了不必要的消息发送,影响消息总线的性能,导致资源空耗。难以实现在不破坏MQ本身特性的基础上,保障MQ的安全性。
[0035] 针对上述问题,本申请实施例提供一种基于消息队列的行列权限管理的方法,应用于权限管理系统。下面结合附图进行详细介绍。
[0036] 首先,请参看图1所示的权限管理系统100的结构示意图,包括消息接收端消息队列MQ110,消息重生模块120、权限配置模块130、MQ服务接口网关 140与消息发送端MQ150,各模块之间通信连接。
[0037] 上述权限管理系统100可以是服务器,例如可以为分布式存储服务器、传统服务器、大型存储系统、台式电脑、笔记本电脑、平板电脑、掌上电脑、智能手机、便携式数字播放器、智能手表以及智能手环等。
[0038] 本申请实施例的技术方案可以基于图1举例所示架构的权限管理系统或其形变架构来具体实施。
[0039] 参见图2A,图2A是本申请实施例提供的一种基于消息队列的行列权限管理方法的流程示意图,这种方法可包括但不限于如下步骤:
[0040] 201、所述消息接收端MQ接收初始消息,并且向所述消息重生模块发送所述初始消息;
[0041] 具体的,可以理解为,消息接收端MQ为Ingress MQ,面向消息生产者提供服务,其对应于消息发送端MQ(Out Bonding MQ),消息发送端MQ,面向消息消费者提供服务。消息队列(Message Queue,MQ),也称为消息总线(Message Bus),是指以消息的生产/订阅机制为核心的跨进程通信组件,在现代的服务化处理架构中,它一般是一个公共基础设施。可以理解为所述消息接收端MQ从其他设备或者互联网络接收初始消息后,向消息重生模块发送所述初始消息。所述初始消息是消息生产者生成的消息。
[0042] 202、所述消息重生模块接收来自所述MQ服务接口网关发送的目标用户的订阅信息;
[0043] 具体的,可以理解为,消息重生模块为权限管理系统的一个核心模块。该模块可以实现消息的重生。上述MQ服务接口网关为连接用户端以及消息重生模块的一个核心模块。用户端输入订阅信息时,可以理解为由MQ服务接口网关将目标用户的订阅信息传送给所述消息重生模块,使得消息重生模块能够基于目标用户的订阅信息进行消息的判断、处理,生成。
[0044] 203、所述消息重生模块接收来自所述权限配置模块发送的所述目标用户的行列权限信息;
[0045] 具体的,可以理解为,权限配置模块为预先存储某个或者某些用户的消息队列行列权限的模块,若预先存储了多个用户的消息队列行列权限时,可以以编码或者数据分别加密或者标号等方式进行区分。权限配置模块与所述消息重生模块通信连接,便于所述消息重生模块接收目标用户的行列权限信息。所述目标用户的行列权限信息标记了目标用户具有哪些行或者哪些列的获取权限,以及具体的行权限的表达与结构以及列权限的表达与缓存结构。
[0046] 204、所述消息重生模块接收所述初始消息,并根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,并使用所述主题路由单元向所述消息发送端MQ发送所述目标消息;
[0047] 具体的,可以理解为,消息重生模块在接收所述初始消息以及所述订阅信息与所述目标用户的行列权限信息后,根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,所述目标消息相对于初始消息,体现出目标用户的行列权限,也即把目标用户具有行列权限的行列信息保留,把目标用户不具有行列权限的行列信息剔除,并且根据保留下来的信息按照预设的行列格式生成目标消息。更近一步的,生成的目标消息可能没有对应的路由单元能进行目标消息的发送,所以也得生成新的路径,即所述主题路由单元,并使用所述主题路由单元向所述消息发送端MQ发送所述目标消息。
[0048] 205、所述消息发送端MQ在接收所述目标消息后,向目标用户端发送所述目标消息。
[0049] 具体的,可以理解为,所述消息发送端MQ为连接所述MQ服务接口网关以及目标客户端的一个消息发送端口。在其获取所述目标消息后便转发给所述目标客户端。便于所述目标客户端及时获取想要获取的目标消息。
[0050] 可以看出,本申请实施例中通过消息接收端MQ与消息发送端MQ的双实例结构部署,并在两端之间,通过设置消息重生模块、权限配置模块、MQ服务接口网关联合起来管理消息队列的行列权限。较之于单实例原生的MQ,对于消息的生产者以及消息的消费者而言,依然是消息的生产与消息的接收,即实现了权限的管理,又不会对消息的生产者以及消息的消费者增加额外的资源消耗,从而权限的管理过程既保障了MQ的安全性,又不破坏MQ的原生特性。
[0051] 在一个可能的示例中,所述消息重生模块包括用户订阅主题路由单元,目标用户权限计算单元,消息生成单元,所述消息重生模块根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元包括:所述用户订阅主题路由单元监听多个主题信息的路由请求,在监听到第一主题信息的路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元;所述目标用户权限计算单元根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息,并向所述消息生成单元发送所述目标用户的权限结果信息;所述消息生成单元接收所述目标用户的权限结果信息,并根据所述目标用户的权限结果信息生成目标消息与主题路由单元。
[0052] 具体实现中,如图2B所示的消息重生模块的功能单元示意图,可以理解为所述消息重生模块包括用户订阅主题路由单元,目标用户权限计算单元,消息生成单元,由这些单元具体执行消息重生模块的管理任务,各个单元之间通信连接。所述用户订阅主题路由单元主要是监听主题(Topic)的路由请求,在获取到路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元。举例而言,目标用户为用户A,他的订阅信息里记载着他订阅了Topic1(用户A 的订阅还可以包括Topic2、Topic3、Topic4……同理,Topic1也可以还被用户B、用户C、用户D等订阅,此处仅以Topic1被用户A订阅为例进行说明),在用户订阅路由单元确定之后,便将Topic1相关信息发送但用户A的权限计算单元,来计算用户A的消息队列的行列权限。可以理解为,为每一个订阅用户建立了一个目标用户权限计算单元,来计算目标用户的行列权限。所述目标用户权限计算单元在接收Topic1相关信息后,便根据用户A的行列权限信息(即目标用户的行列权限信息)计算用户A的行列权限。即在Topic1中用户A具有哪些行列权限,并且根据这个计算结果得到用户A的权限结果信息。并且将所述用户 A的权限结果信息发送给消息生成单元,由消息生成单元生成以用户A为核心的目标消息,以及目标消息对应的主题路由单元,所述主题路由单元即发送目标消息的路径。目标消息的格式为(User ID,Topic ID)。
[0053] 可见,本示例中,通过消息重生模块多个通信连接的功能单元,由用户订阅主题路由单元监听并且将第一主题信息具体分发至订阅了第一主题的目标用户权限计算单元,由目标用户权限计算单元计算目标用户关于第一主题的行列权限信息,得到目标用户的权限结果信息,再由消息生成单元根据目标用户的权限结果信息生成目标消息与主题路由单元。有利于根据用户的订阅信息准确分发主题信息,提高权限管理的效率与效果。
[0054] 在一个可能的示例中,所述用户订阅主题路由单元包括主题路由信息表与主题路由执行子单元,所述用户订阅主题路由单元监听多个主题信息的路由请求,在监听到第一主题信息的路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元,包括:根据多个用户的订阅信息建立所述主题路由信息表,所述主题路由信息表中多个主题中的每一个主题对应至少一个用户信息,所述多个用户的订阅信息中包括所述目标用户的订阅信息;所述主题路由执行子单元监听多个主题信息的路由请求,在监听到所述第一主题信息的路由请求时,查找所述主题路由信息表中所述第一主题信息的路由表项;遍历所述第一主题信息的路由表项,若在所述第一主题信息的路由表项获取到所述目标用户的信息,则将所述第一主题信息路由至所述目标用户权限计算单元。
[0055] 具体的,可以理解为,用户订阅主题路由单元包括主题路由信息表与主题路由执行子单元。其中,所述主题路由信息表为Topic与用户信息的订阅关系表,如表1所示:Topic1可能对于多个订阅用户,比如用户A、用户B,一个用户也可能对应对个Topic,比如用户B订阅了Topic1与Topic2。通过这个主题路由信息表可以清楚的获取到Topic包含的与其对应的订阅用户,以及订阅用户的详细信息,以及其他关于Topic的一个备注信息等。主题路由执行子单元监听主题信息的路由请求,在监听到Topic1(第一主题)的路由请求时,便将Topic1路由至用户A的权限计算单元以及用户B的权限计算单元。
[0056] 可见,通过主题路由信息表,便于获取每个Topic对应的订阅用户信息,并能通过主题路由执行子单元将不同的Topic路由至对应的目标用户权限计算单元。建立Topic与订阅用户之间的映射关系,使得Topic的分类更加准确。
[0057] 主题信息 订阅用户名称 用户详细信息 备注Topic 1 用户A、用户B *** ***
Topic 2 用户B、用户C *** ***
……Topic n …… *** ***
[0058] 表1
[0059] 在一个可能的示例中,所述目标用户权限计算单元包括用户权限缓存子单元、行权限过滤子单元、列权限过滤子单元,所述目标用户权限计算单元根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息,包括:所述用户权限缓存子单元缓存所述目标用户的行列权限信息,所述目标用户的行列权限信息来自于所述权限配置模块,所述目标用户的行列权限信息包括所述目标用户的行权限信息与所述目标用户的列权限信息;所述行权限过滤子单元根据所述目标用户的行权限信息过滤所述第一主题信息,得到授权的行权限信息;所述列权限过滤子单元根据所述目标用户的列权限信息过滤所述第一主题信息,得到授权的列权限信息;根据所述授权的行权限信息与所述授权的列权限信息得到所述目标用户的权限结果信息。
[0060] 具体的,可以理解为,目标用户权限计算单元包括用户权限缓存子单元、行权限过滤子单元、列权限过滤子单元。其中,所述权限缓存子单元用于缓存所述目标用户的行列权限信息,所述目标用户的行列权限信息来自于所述权限配置模块,所述目标用户的行列权限信息包括所述目标用户的行权限信息与所述目标用户的列权限信息;然后由列权限过滤子单元与行权限过滤子单元过滤 Topic1(第一主题信息),比如用户A具有Topic1中某些行与某些列的获取权限,但不具备有的行与有的列的获取权限,因此过滤的目的就是将用户A具有权限的行列保存下来,把不具有权限的行列筛除,便得到用户A的权限结果信息。权限结果信息即用户A具有权限的行列按照预设的格式保存下来,并且可以发送给用户A,使之能够查看,使用。
[0061] 可见,通过目标用户权限计算单元包含的子单元,对目标用户的行列权限进行计算,便于获取目标用户的行列权限信息,而且便于后期目标消息的生成。
[0062] 在一个可能的示例中,所述行权限过滤子单元根据所述目标用户的行权限信息过滤所述第一主题信息,得到授权的行权限信息,包括:所述目标用户行权限信息包含三个层级,第一层级为用户ID,第二层级为主题ID,第三层级为数据源ID,所述用户ID对应至少一个主题ID,所述一个主题ID对应至少一个数据源ID;所述行权限过滤子单元遍历所述第一主题信息中的多个数据源ID,比较所述第一主题信息中的多个数据源ID与所述目标用户的行权限信息中的数据源ID;在所述第一主题信息中的第一数据源ID匹配所述目标用户的行权限信息中的数据源ID时,标记所述第一主题信息中的第一数据源ID为授权的行权限信息;在所述第一主题信息中的第二数据源ID不匹配所述目标用户的行权限信息中的数据源ID时,将所述第一主题信息中的第二数据源ID从所述第一主题信息中剔除;将所述第一主题信息中的第一数据源ID作为授权的行权限信息与所述用户ID关联起来进行存储。
[0063] 具体的,可以理解为,由用户权限缓存子单元缓存所述目标用户的行权限信息,行权限的缓存结构如图2C所示,其结构的核心点如下:第一级结构如以用户为核心,比如图2C中的用户0权限缓存、用户1权限缓存、用户n权限缓存等,即每一个用户拥有自己独立的权限缓存项;第二级结构以Topic为核心,比如用户0权限缓存中包含了Topic1、Topic2…Topic(x),即每个用户的每个Topic 的权限独立管理;第三级结构则是数据源ID,每一个数据源ID项可以是任何层,并按继承原则进行后续的运算,其中还分为包含与排除项:包含即包含哪些数据源ID,满足条件则进行转发。排除即排除掉对应的数据源ID,满足条件则进行过滤。比如如表2所示,Topic1的行信息身份证信息以及户口信息,如果用户A具有身份证信息的获取权限,则具体的可以获取张三、李四、王五等的身份证信息,而张三、李四、王五等的户口信息则会被排除,最终得到用户A具有权限的行消息。
[0064] 可见,建立以目标用户为核心的行权限信息,以用户、Topic以及数据源为行权限缓存框架,层层细分,明确了行权限信息的同时,也便于获取授权的行权限信息,以及将不具有权限的信息剔除,减少资源的空耗。
[0065]Topic1 张三 李四 王五 ……
身份证信息 @ # ¥ ……
户口信息 重庆 四川 深圳 ……
[0066] 表2
[0067] 在一个可能的示例中,所述列权限过滤子单元根据所述目标用户的目标用户行列权限信息过滤列权限,得到授权的列权限信息,包括:所述目标用户行列权限信息包含三个层级,第一层级为用户ID,第二层级为主题ID,第三层级为主题ID对应的字段信息,所述用户ID对应至少一个主题ID,所述一个主题ID对应至少一个字段信息;所述列权限过滤子单元遍历所述第一主题信息中的多个字段信息,比较所述第一主题信息中的多个字段信息与所述目标用户的列权限信息中的字段;在所述第一主题信息中的第一字段匹配所述目标用户的列权限信息中的字段时,标记所述第一主题信息中的第一字段为授权的列权限信息;在所述第一主题信息中的第二字段不匹配所述目标用户的列权限信息中的字段时,将所述第一主题信息中的第二字段从所述第一主题信息中剔除;将所述第一主题信息中的第一字段作为授权的列权限信息与所述用户ID关联起来进行存储。
[0068] 具体的,可以理解为,由用户权限缓存子单元缓存所述目标用户的列权限信息,列权限的缓存结构如图2D所示,列权限即在一个消息中,由多个字段组成,不同的用户针对同一个Topic具有不同的权限。列权限的缓存结构,其核心的结构如下:第一级结构可以以用户为核心,即每一个用户拥有自己独立的列限缓存项;第二级结构以Topic为核心,即每个用户的每个Topic的列限独立管理;第三级结构是Topic的字段列表,即可被访问的具体字段。比如如上述表2 所示,Topic1的列信息包含了张三、李四、王五等的身份证信息以及户口信息,比如用户A具有张三的信息获取权限,则具体的可以获取张三的身份证信息与户口信息,其他李四、王五的信息则会被排除,最终得到用户A具有权限的行消息。
[0069] 可见,建立以目标用户为核心的列权限信息,以用户、Topic以及字段为列权限缓存框架,层层细分,明确了列权限信息的同时,也便于获取授权的列权限信息,以及将不具有权限的信息剔除,减少资源的空耗。
[0070] 在一个可能的示例中,所述消息生成单元包括主题管理子单元与主题消息发送子单元,所述消息生成单元接收所述目标用户的权限结果信息,并根据所述目标用户的权限结果信息生成所述目标消息与主题路由单元,包括:所述主题管理子单元接收来自所述目标用户权限计算单元发送的所述目标用户的权限结果信息,并从所述目标用户的权限结果信息获取所述目标用户标识ID以及所述目标用户标识对应的第一主题标识ID;所述主题管理子单元根据所述目标用户ID和所述第一主题ID查询包含所述目标用户ID和所述第一主题ID的主题路由单元信息,若未查询到所述主题路由单元信息,则生成包含所述目标用户 ID和所述第一主题ID的主题路由单元信息;所述主题消息发送子单元监听消息发送请求,在获取所述消息发送请求后,获取所述目标用户的权限结果信息,对所述目标用户的权限结果信息进行重组,生成目标信息,所述目标信息为目标用户ID包含的第一主题信息中被授权的行列信息。
[0071] 具体的,主题管理子单元主要进行Topic的管理,对于每一个原始的 Topic(x),比如Topic1、Topic2、Topic3,主题管理子单元在获取Topic ID和User ID后组合成(User ID,Topic(x))的路由单元格式,比如根据目标用户ID和所述第一主题ID形成(目标用户,Topic1)的主题路由单元。同理,也可以形成(目标用户,Topic2)、(目标用户,Topic3)的主题路由单元。若从监听到的消息发送请求中获取到Topic ID和User ID后,以(User ID,Topic ID)数据组进行查询,如果查询结果不为空,说明所需要的Topic已经创建;如果查询结果为空,则创建以(User ID,Topic ID)为组合主题路由单元。而主题消息发送子单元根据目标用户的权限结果信息(User ID,Topic ID)的格式生成新的目标消息,可以理解为按照(User ID,Topic ID)为一个存储或者缓存单元格,将目标用户的权限结果信息填入这个或者这些单元格。形成(目标用户,Topic1)的目标消息,再由主题消息发送子单元利用(目标用户,Topic1)的主题路由单元将(目标用户,Topic1) 的目标消息发送。
[0072] 可见,通过消息生成单元包括主题管理子单元与主题消息发送子单元根据用户的权限结果信息生成以用户为核心,每个用户订阅的主题为组成部分的目标消息以及目标消息对应的主题发送路由单元。明确了目标用户的权限信息,便于用户权限管理。
[0073] 与上述图2A所示的实施例一致,请参阅图3,图3是本申请实施例提供的另一种基于消息队列的行列权限管理的方法的流程示意图,应用于权限管理系统;包括:
[0074] 301、所述消息接收端MQ接收初始消息,并且向所述消息重生模块发送所述初始消息;
[0075] 302、所述消息重生模块接收来自所述MQ服务接口网关发送的目标用户的订阅信息;
[0076] 303、所述消息重生模块接收来自所述权限配置模块发送的所述目标用户的行列权限信息;
[0077] 步骤301‑303同前述步骤201‑203,在此不再赘述。
[0078] 304、所述消息重生模块接收初始消息,所述初始消息包括第一主题信息,并根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息,并从所述目标用户的权限结果信息获取所述目标用户标识ID以及所述目标用户标识对应的第一主题标识ID;
[0079] 具体的,可以理解为初始消息中包含了多个主题消息,多个主题消息中包含了第一主题信息。如果所述目标用户订阅了所述第一主题信息,则根据目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,即将第一主题信息中目标用户具有权限的行列信息保存下来,将第一主题信息中目标用户不具有权限的行列信息剔除,最终得到所述目标用户的权限结果信息。而权限结果信息中包含了目标用户的ID,比如目标用户的ID为A,第一主题标识ID为Topic1。
[0080] 305、所述消息重生模块根据所述目标用户ID和所述第一主题ID查询包含所述目标用户ID和所述第一主题ID的主题路由单元信息,若未查询到所述主题路由单元信息,则生成包含所述目标用户ID和所述第一主题ID的主题路由单元信息,根据所述目标用户的权限结果信息,生成目标信息,并向所述消息发送端MQ发送所述目标消息;
[0081] 具体的,可以理解为以(User ID,Topic ID)数据组为查询格式,比如以(目标用户,Topic1)进行查询是否已经存在这样一个以目标用户为核心,以第一主题为内容的主题路由单元,若获取该路由单元,表明已经存在该路由单元。若查询结果为空,则表明不存在该路由单元,因此需要建立(目标用户,Topic1) 路由单元。并且在建立这个路由单元之后,还要以(目标用户,Topic1)为消息组织形式,生成目标消息。再利用(目标用户,Topic1)的主题路由单元将(目标用户,Topic1)的目标消息向消息发送端MQ发送。
[0082] 306、所述消息发送端MQ在接收所述目标消息后,向目标用户端发送所述目标消息。
[0083] 步骤306同前述步骤205,在此不再赘述。
[0084] 可见,本申请实施例中通过消息接收端MQ与消息发送端MQ的双实例结构部署,并在两端之间,通过设置消息重生模块、权限配置模块、MQ服务接口网关联合起来管理消息队列的行列权限。而且生成的消息以(User ID,Topic ID) 为数据表现形式,体现出目标消息是以用户为核心,以用户具有行列权限的Topic 为内容,实现对用户行列权限的管理。较之于单实例原生的MQ,对于消息的生产者以及消息的消费者而言,依然是消息的生产与消息的接收,即实现了权限的管理,又不会对消息的生产者以及消息的消费者增加额外的资源消耗,从而权限的管理过程既保障了MQ的安全性,又不破坏MQ的原生特性。
[0085] 与上图2A、图3所示的实施例一致的,请参阅图4,图4是本申请实施例提供的一种基于消息队列的行列权限管理装置400的功能单元结构示意图,应用于权限管理系统,所述行列权限管理装置400包括通信单元410,处理单元 420,其中:
[0086] 所述处理单元420,用于控制所述消息接收端MQ接收初始消息,并且向所述消息重生模块发送所述初始消息;
[0087] 所述处理单元420,还用于控制所述消息重生模块接收来自所述MQ服务接口网关发送的目标用户的订阅信息;
[0088] 所述处理单元420,还用于控制所述消息重生模块接收来自所述权限配置模块发送的所述目标用户的行列权限信息;
[0089] 所述处理单元420,还用于控制所述消息重生模块接收所述初始消息,并根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,并使用所述主题路由单元向所述消息发送端MQ发送所述目标消息;
[0090] 所述处理单元420,还用于控制所述消息发送端MQ在接收所述目标消息后,向目标用户端发送所述目标消息。
[0091] 可见,本申请实施例中通过处理单元控制消息接收端MQ与消息发送端MQ 的双实例结构部署,并在两端之间,通过设置消息重生模块、权限配置模块、 MQ服务接口网关联合起来管理消息队列的行列权限。较之于单实例原生的 MQ,对于消息的生产者以及消息的消费者而言,依然是消息的生产与消息的接收,即实现了权限的管理,又不会对消息的生产者以及消息的消费者增加额外的资源消耗,从而权限的管理过程既保障了MQ的安全性,又不破坏MQ的原生特性。
[0092] 在一个可能的示例中,所述消息重生模块包括用户订阅主题路由单元,目标用户权限计算单元,消息生成单元,在所述消息重生模块根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元方面,所述处理单元420,具体用于控制所述用户订阅主题路由单元监听多个主题信息的路由请求,在监听到第一主题信息的路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元;所述目标用户权限计算单元根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息,并向所述消息生成单元发送所述目标用户的权限结果信息;所述消息生成单元接收所述目标用户的权限结果信息,并根据所述目标用户的权限结果信息生成目标消息与主题路由单元。
[0093] 在一个可能的示例中,所述用户订阅主题路由单元包括主题路由信息表与主题路由执行子单元,在所述用户订阅主题路由单元监听多个主题信息的路由请求,在监听到第一主题信息的路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元方面,所述处理单元420,具体用于根据多个用户的订阅信息建立所述主题路由信息表,所述主题路由信息表中多个主题中的每一个主题对应至少一个用户信息,所述多个用户的订阅信息中包括所述目标用户的订阅信息;所述主题路由执行子单元监听多个主题信息的路由请求,在监听到所述第一主题信息的路由请求时,查找所述主题路由信息表中所述第一主题信息的路由表项;遍历所述第一主题信息的路由表项,若在所述第一主题信息的路由表项获取到所述目标用户的信息,则将所述第一主题信息路由至所述目标用户权限计算单元。
[0094] 在一个可能的示例中,所述目标用户权限计算单元包括用户权限缓存子单元、行权限过滤子单元、列权限过滤子单元,在所述目标用户权限计算单元根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息方面,所述处理单元420,具体用于控制所述用户权限缓存子单元缓存所述目标用户的行列权限信息,所述目标用户的行列权限信息来自于所述权限配置模块,所述目标用户的行列权限信息包括所述目标用户的行权限信息与所述目标用户的列权限信息;所述行权限过滤子单元根据所述目标用户的行权限信息过滤所述第一主题信息,得到授权的行权限信息;所述列权限过滤子单元根据所述目标用户的列权限信息过滤所述第一主题信息,得到授权的列权限信息;根据所述授权的行权限信息与所述授权的列权限信息得到所述目标用户的权限结果信息。
[0095] 在一个可能的示例中,在所述行权限过滤子单元根据所述目标用户的行权限信息过滤所述第一主题信息,得到授权的行权限信息方面,所述处理单元420,具体用于所述目标用户行权限信息包含三个层级,第一层级为用户ID,第二层级为主题ID,第三层级为数据源ID,所述用户ID对应至少一个主题ID,所述一个主题ID对应至少一个数据源ID;所述行权限过滤子单元遍历所述第一主题信息中的多个数据源ID,比较所述第一主题信息中的多个数据源ID与所述目标用户的行权限信息中的数据源ID;在所述第一主题信息中的第一数据源ID匹配所述目标用户的行权限信息中的数据源ID时,标记所述第一主题信息中的第一数据源ID为授权的行权限信息;在所述第一主题信息中的第二数据源ID不匹配所述目标用户的行权限信息中的数据源ID时,将所述第一主题信息中的第二数据源ID从所述第一主题信息中剔除;将所述第一主题信息中的第一数据源ID 作为授权的行权限信息与所述用户ID关联起来进行存储。
[0096] 在一个可能的示例中,在所述列权限过滤子单元根据所述目标用户的目标用户行列权限信息过滤列权限,得到授权的列权限信息方面,所述处理单元420,具体用于所述目标用户行列权限信息包含三个层级,第一层级为用户ID,第二层级为主题ID,第三层级为主题ID对应的字段信息,所述用户ID对应至少一个主题ID,所述一个主题ID对应至少一个字段信息;所述列权限过滤子单元遍历所述第一主题信息中的多个字段信息,比较所述第一主题信息中的多个字段信息与所述目标用户的列权限信息中的字段;在所述第一主题信息中的第一字段匹配所述目标用户的列权限信息中的字段时,标记所述第一主题信息中的第一字段为授权的列权限信息;在所述第一主题信息中的第二字段不匹配所述目标用户的列权限信息中的字段时,将所述第一主题信息中的第二字段从所述第一主题信息中剔除;将所述第一主题信息中的第一字段作为授权的列权限信息与所述用户ID关联起来进行存储。
[0097] 在一个可能的示例中,所述消息生成单元包括主题管理子单元与主题消息发送子单元,在所述消息生成单元接收所述目标用户的权限结果信息,并根据所述目标用户的权限结果信息生成所述目标消息与主题路由单元方面,所述处理单元420,具体用于控制所述主题管理子单元接收来自所述目标用户权限计算单元发送的所述目标用户的权限结果信息,并从所述目标用户的权限结果信息获取所述目标用户标识ID以及所述目标用户标识对应的第一主题标识ID;所述主题管理子单元根据所述目标用户ID和所述第一主题ID查询包含所述目标用户ID和所述第一主题ID的主题路由单元信息,若未查询到所述主题路由单元信息,则生成包含所述目标用户ID和所述第一主题ID的主题路由单元信息;所述主题消息发送子单元监听消息发送请求,在获取所述消息发送请求后,获取所述目标用户的权限结果信息,对所述目标用户的权限结果信息进行重组,生成目标信息,所述目标信息为目标用户ID包含的第一主题信息中被授权的行列信息。
[0098] 图5是本申请实施例提供的电子设备500的结构示意图,如图所示,所述电子设备500包括处理器510、存储器520、通信接口530以及一个或多个程序 521,其中,所述一个或多个程序521被存储在上述存储器520中,并且被配置由上述处理器510执行,所述一个或多个程序521包括用于执行以下步骤的指令:
[0099] 所述消息接收端MQ接收初始消息,并且向所述消息重生模块发送所述初始消息;
[0100] 所述消息重生模块接收来自所述MQ服务接口网关发送的目标用户的订阅信息;
[0101] 所述消息重生模块接收来自所述权限配置模块发送的所述目标用户的行列权限信息;
[0102] 所述消息重生模块接收所述初始消息,并根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元,并使用所述主题路由单元向所述消息发送端MQ发送所述目标消息;
[0103] 所述消息发送端MQ在接收所述目标消息后,向目标用户端发送所述目标消息。
[0104] 可见,本申请实施例中通过一个或多个程序指令控制消息接收端MQ与消息发送端MQ的双实例结构部署,并在两端之间,通过设置消息重生模块、权限配置模块、MQ服务接口网关联合起来管理消息队列的行列权限。较之于单实例原生的MQ,对于消息的生产者以及消息的消费者而言,依然是消息的生产与消息的接收,即实现了权限的管理,又不会对消息的生产者以及消息的消费者增加额外的资源消耗,从而权限的管理过程既保障了MQ的安全性,又不破坏 MQ的原生特性。
[0105] 在一个可能的示例中,所述消息重生模块包括用户订阅主题路由单元,目标用户权限计算单元,消息生成单元,在所述消息重生模块根据所述订阅信息与所述目标用户的行列权限信息过滤所述初始消息生成目标消息与主题路由单元方面,所述一个或多个程序521具体包括用于执行以下操作的指令,所述用户订阅主题路由单元监听多个主题信息的路由请求,在监听到第一主题信息的路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元;所述目标用户权限计算单元根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息,并向所述消息生成单元发送所述目标用户的权限结果信息;所述消息生成单元接收所述目标用户的权限结果信息,并根据所述目标用户的权限结果信息生成目标消息与主题路由单元。
[0106] 在一个可能的示例中,所述用户订阅主题路由单元包括主题路由信息表与主题路由执行子单元,在所述用户订阅主题路由单元监听多个主题信息的路由请求,在监听到第一主题信息的路由请求时,若根据所述目标用户的订阅信息判断出所述目标用户订阅了所述第一主题信息,则将所述第一主题信息路由至所述目标用户权限计算单元方面,所述一个或多个程序521具体包括用于执行以下操作的指令,根据多个用户的订阅信息建立所述主题路由信息表,所述主题路由信息表中多个主题中的每一个主题对应至少一个用户信息,所述多个用户的订阅信息中包括所述目标用户的订阅信息;所述主题路由执行子单元监听多个主题信息的路由请求,在监听到所述第一主题信息的路由请求时,查找所述主题路由信息表中所述第一主题信息的路由表项;遍历所述第一主题信息的路由表项,若在所述第一主题信息的路由表项获取到所述目标用户的信息,则将所述第一主题信息路由至所述目标用户权限计算单元。
[0107] 在一个可能的示例中,所述目标用户权限计算单元包括用户权限缓存子单元、行权限过滤子单元、列权限过滤子单元,在所述目标用户权限计算单元根据所述目标用户的行列权限信息计算所述第一主题信息中所述目标用户的行列权限,得到所述目标用户的权限结果信息方面,所述一个或多个程序521具体包括用于执行以下操作的指令,所述用户权限缓存子单元缓存所述目标用户的行列权限信息,所述目标用户的行列权限信息来自于所述权限配置模块,所述目标用户的行列权限信息包括所述目标用户的行权限信息与所述目标用户的列权限信息;所述行权限过滤子单元根据所述目标用户的行权限信息过滤所述第一主题信息,得到授权的行权限信息;所述列权限过滤子单元根据所述目标用户的列权限信息过滤所述第一主题信息,得到授权的列权限信息;根据所述授权的行权限信息与所述授权的列权限信息得到所述目标用户的权限结果信息。
[0108] 在一个可能的示例中,在所述行权限过滤子单元根据所述目标用户的行权限信息过滤所述第一主题信息,得到授权的行权限信息方面,所述一个或多个程序521具体包括用于执行以下操作的指令,所述目标用户行权限信息包含三个层级,第一层级为用户ID,第二层级为主题ID,第三层级为数据源ID,所述用户ID对应至少一个主题ID,所述一个主题ID对应至少一个数据源ID;所述行权限过滤子单元遍历所述第一主题信息中的多个数据源ID,比较所述第一主题信息中的多个数据源ID与所述目标用户的行权限信息中的数据源ID;在所述第一主题信息中的第一数据源ID匹配所述目标用户的行权限信息中的数据源 ID时,标记所述第一主题信息中的第一数据源ID为授权的行权限信息;在所述第一主题信息中的第二数据源ID不匹配所述目标用户的行权限信息中的数据源 ID时,将所述第一主题信息中的第二数据源ID从所述第一主题信息中剔除;将所述第一主题信息中的第一数据源ID作为授权的行权限信息与所述用户ID关联起来进行存储。
[0109] 在一个可能的示例中,在所述列权限过滤子单元根据所述目标用户的目标用户行列权限信息过滤列权限,得到授权的列权限信息方面,所述一个或多个程序521具体包括用于执行以下操作的指令,所述目标用户行列权限信息包含三个层级,第一层级为用户ID,第二层级为主题ID,第三层级为主题ID对应的字段信息,所述用户ID对应至少一个主题ID,所述一个主题ID对应至少一个字段信息;所述列权限过滤子单元遍历所述第一主题信息中的多个字段信息,比较所述第一主题信息中的多个字段信息与所述目标用户的列权限信息中的字段;在所述第一主题信息中的第一字段匹配所述目标用户的列权限信息中的字段时,标记所述第一主题信息中的第一字段为授权的列权限信息;在所述第一主题信息中的第二字段不匹配所述目标用户的列权限信息中的字段时,将所述第一主题信息中的第二字段从所述第一主题信息中剔除;将所述第一主题信息中的第一字段作为授权的列权限信息与所述用户ID关联起来进行存储。
[0110] 在一个可能的示例中,所述消息生成单元包括主题管理子单元与主题消息发送子单元,在所述消息生成单元接收所述目标用户的权限结果信息,并根据所述目标用户的权限结果信息生成所述目标消息与主题路由单元方面,所述一个或多个程序521具体包括用于执行以下操作的指令,所述主题管理子单元接收来自所述目标用户权限计算单元发送的所述目标用户的权限结果信息,并从所述目标用户的权限结果信息获取所述目标用户标识ID以及所述目标用户标识对应的第一主题标识ID;所述主题管理子单元根据所述目标用户ID和所述第一主题ID查询包含所述目标用户ID和所述第一主题ID的主题路由单元信息,若未查询到所述主题路由单元信息,则生成包含所述目标用户ID和所述第一主题 ID的主题路由单元信息;所述主题消息发送子单元监听消息发送请求,在获取所述消息发送请求后,获取所述目标用户的权限结果信息,对所述目标用户的权限结果信息进行重组,生成目标信息,所述目标信息为目标用户ID包含的第一主题信息中被授权的行列信息。
[0111] 其中,处理器510可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器510可以采用DSP(Digital Signal Processing,数字信号处理)、 FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器510也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器510还可以包括 AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
[0112] 存储器520可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器520还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器520至少用于存储以下计算机程序,其中,该计算机程序被处理器510加载并执行之后,能够实现前述任一实施例公开的通话控制方法中的相关步骤。另外,存储器520所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于电子设备交互数据、电子设备信号等。
[0113] 在一些实施例中,电子设备500还可包括有输入输出接口、通信接口、电源以及通信总线。
[0114] 本领域技术人员可以理解,本实施例公开的结构并不构成对电子设备500 的限定,可以包括更多或更少的组件。
[0115] 上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0116] 本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0117] 本申请实施例提供了一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,如上述方法实施例中记载的任一方法的部分或全部步骤。
[0118] 本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
[0119] 本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括上述电子设备。
[0120] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0121] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0122] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0123] 上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0124] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0125] 上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM, Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0126] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read‑Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
[0127] 以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。