一种用户权限管理方法及客户端、服务器与流程

文档序号:11930323阅读:582来源:国知局
一种用户权限管理方法及客户端、服务器与流程

本发明涉及网络管理技术领域,尤其涉及一种用户权限管理方法及客户端、服务器。



背景技术:

目前,网管权限系统采用数据库来实现授权数据的管理,一般由用户组表、用户表、操作集表、用户组操作集关联表、操作项表、操作集操作项关联表和用户组用户关联表等组成,如图1所示,图1中示出了现有网管权限系统中的对象关系示意图。在网管权限系统中,客户端在进行操作前通过查询数据库获取当前用户权限数据,判断是否拥有操作权限。

现有权限判断流程,如图2所示,具体如下:客户端把当前用户信息和操作权限信息传到服务端,服务端通过当前用户查询用户所在组,获取到用户组后查询用户组所拥有的操作集,通过判断操作集所关联的权限项中是否包含了客户端用户要进行的操作,来判断用户是否有权限。

在实现本发明过程中,发明人发现现有技术中至少存在以下问题:

客户端每次进行一项操作前,都要由客户端向服务端发起远程调用,由服务端查询数据库获取用户权限数据,由于权限数据是与各部分数据相互关联组成的,需要通过用户查找用户所在的用户组,通过用户组查找关联的操作集,再通过操作集查询关联的操作项集合,最后比对是否包含客户端操作项,完成权限判断。因为现在大多系统都采用了对象映射管理,如用户包含用户组,用户组都包含用户等多对多映射关系,从而造成数据循环冗余加载,占用较多系统资源,系统 处理效率降低。而且,客户端如果进行多项操作或进行批量操作,服务端多次进行数据库查询操作和权限判断处理,不仅花费很多服务器和网络资源,而且完成整个操作时间较长,用户体验较差。



技术实现要素:

本发明提出了一种用户权限管理方法及客户端、服务器,以解决现有用户权限管理中数据循环冗余加载,占用较多系统资源,系统处理效率降低以及完成整个操作时间较长的问题,提高了用户操作体验。

根据本发明的一个方面,提供了一种用户权限管理方法,该方法包括:

当用户执行当前操作命令时,检测客户端本地是否缓存有所述用户的操作权限集;

当本地缓存有所述用户的操作权限集时,根据所述操作权限集判定所述用户是否具有执行当前操作命令的权限。

其中,当客户端本地不存在所述用户的操作权限集时,所述方法还包括:

远程调用服务端接口获取所述用户的操作权限集,并将获取到的操作权限集缓存到客户端本地。

其中,所述远程调用服务端接口获取所述用户的操作权限集,包括:

远程调用服务端接口,通过所述服务端接口发送操作权限集获取请求消息,所述操作权限集获取请求消息中包含用户参数和权限集类型,以使服务器根据所述用户参数和权限集类型获取所述用户的操作权限集。

其中,所述方法还包括:

接收服务器发送的JMS消息,所述JMS消息用于通知客户端当前用户的操作权限集变更;

根据所述JMS消息,远程调用服务端接口获取所述用户的更新后的操作权限集。

根据本发明的另一个方面,提供了一种用户权限管理方法,该方法包括:

接收客户端发送的操作权限集获取请求消息,所述操作权限集获取请求消息中包含用户参数和权限集类型;

根据所述用户参数获取用户所属的用户组集合;

根据所述权限集类型,采用懒加载机制加载所述用户组集合对应的权限数据;

根据所述用户组集合对应的权限数据确定所述用户的操作权限集;

将所述操作权限集下发到所述客户端。

其中,所述方法还包括:

当某一用户的操作权限发生变更时,向所述客户端发送JMS消息,以使所述客户端远程调用服务端接口获取当前用户的更新后的操作权限集;

所述JMS消息用于通知客户端当前用户的操作权限集变更。

其中,所述根据所述权限集类型,采用懒加载机制加载所述用户组集合对应的权限数据,包括:

当所述权限集类型为区域权限集时,采用懒加载机制加载所述用户组集合中每一用户组的区域权限集合,并合并所述用户组集合中所有用户组的区域权限集合,得到所述用户的区域权限集;

当所述权限集类型为操作项权限集时,采用懒加载机制加载所述用户组集合中每一用户组的操作项权限集合,并合并所述用户组集合中所有用户组的操作项权限集合,得到所述用户的操作项权限集;

否则,采用懒加载机制加载所述用户组集合中每一用户组的网元权限集合,并合并所述用户组集合中所有用户组的网元权限集合,得 到所述用户的网元权限集。

其中,所述根据所述用户组集合对应的权限数据确定所述用户的操作权限集,包括:

根据所述用户的区域权限集、操作项权限集以及网元权限集,确定所述用户的操作权限集。

根据本发明的第三方面,提供了一种用户权限管理客户端,包括:

检测模块,用于当用户执行当前操作命令时,检测客户端本地是否缓存有所述用户的操作权限集;

判定模块,用于当本地缓存有所述用户的操作权限集时,根据所述操作权限集判定所述用户是否具有执行当前操作命令的权限。

根据本发明的第四方面,提供了一种用户权限管理服务器,包括:

接收模块,用于接收客户端发送的操作权限集获取请求消息,所述操作权限集获取请求消息中包含用户参数和权限集类型;

获取模块,用于根据所述用户参数获取用户所属的用户组集合;

处理模块,用于根据所述权限集类型,采用懒加载机制加载所述用户组集合对应的权限数据;

确定模块,用于根据所述用户组集合对应的权限数据确定所述用户的操作权限集;

发送模块,用于将所述操作权限集下发到所述客户端。

本发明的有益效果为:

本发明提供的用户权限管理方法及客户端、服务器,通过在权限处理过程采用懒加载处理数据方法,减少数据处理过程无用数据加载,提高了系统效率,而且通过使客户端利用权限缓存集合判断权限,且采用JMS消息通知客户端权限缓存即时更新,使得客户端权限集合能够即时更新,在可以保证权限判断准确性的同时,又可以保证其高效性,能够解决客户端操作慢而出现卡顿和执行时间过长问题,提高用户使用体验。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为背景技术的网管权限系统中的对象映射关系示意图;

图2为背景技术的实现用户权限管理方法的流程图;

图3为本发明实施例提出的一种用户权限管理方法的流程图;

图4为本发明实施例提出的客户端用户权限判断方法的流程图;

图5为本发明另一实施例提出的一种用户权限管理方法的流程图;

图6为本发明实施例提出的用户的操作权限集的获取方法的流程图;

图7为本发明实施例提出的一种用户权限管理客户端的结构示意图;

图8为本发明实施例提出的一种用户权限管理服务器的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。

以下对本发明实施例中提及的部分词语进行举例说明,其中:

JPA:JAVA对象持久化接口(Java Persistence API)。一种采用ORMapping技术。

EJB:Java企业Bean(Enterprise JavaBean)。EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。

JMS:Java消息服务(Java Message Service),应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

懒加载:加载一个实体时,定义懒加载(FetchType LAZY)的属性不会马上从数据库中加载,只有显式引用才会加载。

图3示出了本发明实施例的一种用户权限管理方法的流程图。

参照图3,本发明实施例提出的用户权限管理方法,具体包括以下步骤:

S11、当用户执行当前操作命令时,检测客户端本地是否缓存有所述用户的操作权限集;

S12、当本地缓存有所述用户的操作权限集时,根据所述操作权限集判定所述用户是否具有执行当前操作命令的权限。

其中,所述操作权限集中包含所述用户具有的区域权限、操作项权限以及网元权限。

具体的,根据所述操作权限集判定所述用户是否具有执行当前操作命令的权限,进一步包括:

根据所述操作权限集中包含所述用户具有的区域权限、操作项权限以及网元权限,判定所述用户是否具有执行当前操作命令的权限。

需要说明的是,区域权限是指用户可以对那些地区的数据进行操作的权限;操作项权限是指用户可以对数据执行那些操作项,其中,操作项是指,如注册、查看、删除以及修改等操作;网元权限是指用户可以对那些网元设备进行操作。

在本发明实施例中,基于处理过的权限集合,客户端采用客户端本地缓存数据就可以完成权限判断,减少网络数据传输量和服务端服务器压力。本发明通过减少客户端和服务端交互次数,提高权限判断效率。对于多次调用或批量处理减少了权限集合处理的中间过程,有效地提高了系统处理压力和效率。

进一步地,当客户端本地不存在所述用户的操作权限集时,所述方法还包括以下步骤:

远程调用服务端接口获取所述用户的操作权限集,并将获取到的操作权限集缓存到客户端本地。

具体的,所述远程调用服务端接口获取所述用户的操作权限集,包括:

远程调用服务端接口,通过所述服务端接口发送操作权限集获取请求消息,所述操作权限集获取请求消息中包含用户参数和权限集类型,以使服务器根据所述用户参数和权限集类型获取所述用户的操作权限集。

下面通过一具体实施例对本发明技术方案进行详细的解释说明,实现流程如图4所示,具体如下:

首先,检测客户端本地是否缓存有所述用户的操作权限集,判断权限集缓存是否存在,如果存在,则直接根据本地缓存的操作权限集对用户当前执行的操作命令进行权限判断。若客户端本地不存在所述用户的操作权限集,则远程调用服务端接口获取所述用户的操作权限 集,并将获取到的操作权限集缓存到客户端本地,以使客户端采用本地缓存数据完成权限判断。

本发明实施例提供的用户权限管理方法,利用客户端缓存,减少服务器交互次数提交效率,无论是多次还是批量进行权限判断都只访问服务端一次,大量减少服务端重复计算和网络传输,解决现有技术中权限管理过程中服务端根据用户、用户组、权限集、权限项等关联关系计算权限集合过程复杂,计算量大,严重影响系统效率的问题,提高系统效率。

进一步地,本发明实施例提出的用户权限管理方法,还包括:

接收服务器发送的JMS消息,所述JMS消息用于通知客户端当前用户的操作权限集变更;

根据所述JMS消息,远程调用服务端接口获取所述用户的更新后的操作权限集。

在本发明实施例中,在服务端,无论是修改用户组权限(关联操作集或区域变化),操作集权限,用户所从属用户组关系变化等都会引起用户操作权限的变化,此时,服务端采用JMS消息通知权限发生变化用户的客户端进行客户端缓存更新。客户端缓存的用户操作权限集合能够根据服务器发送的JMS消息即时更新,在可以保证权限判断准确性的同时,防止客户端利用之前缓存的旧的操作权限集合进行权限判断,提高用户使用体验。

本发明实施例提出的技术方案,减少客户端和服务端交互次数,提高权限判断效率,可以用于复杂权限管理应用领域,该方案能够用于权限管项较多较复杂,权限数据量大且权限操作频繁的权限系统,高效完成权限判断,提高用户使用体验。

图5示出了本发明另一实施例的一种用户权限管理方法的流程图。

参照图5,本发明实施例提出的用户权限管理方法,具体包括 以下步骤:

S21、接收客户端发送的操作权限集获取请求消息,所述操作权限集获取请求消息中包含用户参数和权限集类型;

其中,所述用户参数,包括用户ID等用户标识参数,用于服务器根据用户参数确定用户所属的用户组,进而得到用户所属的用户组集合。所述权限集类型包括区域权限集、操作项权限集以及网元权限集。

S22、根据所述用户参数获取用户所属的用户组集合;

S23、根据所述权限集类型,采用懒加载机制加载所述用户组集合对应的权限数据;

具体的,所述步骤S23进一步地包括以下步骤:

当所述权限集类型为区域权限集时,采用懒加载机制加载所述用户组集合中每一用户组的区域权限集合,并合并所述用户组集合中所有用户组的区域权限集合,得到所述用户的区域权限集;

当所述权限集类型为操作项权限集时,采用懒加载机制加载所述用户组集合中每一用户组的操作项权限集合,并合并所述用户组集合中所有用户组的操作项权限集合,得到所述用户的操作项权限集;

否则,采用懒加载机制加载所述用户组集合中每一用户组的网元权限集合,并合并所述用户组集合中所有用户组的网元权限集合,得到所述用户的网元权限集。

本发明实施例中,服务端接收到客户端发送的操作权限集获取请求消息后,根据所述用户参数获取用户所属的用户组集合,并根据所述权限集类型分别加载所述用户组集合对应的不同权限集类型的权限数据。采用懒加载机制进行权限缓存处理,可以只加载相关权限数据,其他类型权限数据或多对多互相包含关系数据不会被加载,减少了数据处理过程的加载数据量,提高了系统处理效率。

S24、根据所述用户组集合对应的权限数据确定所述用户的操作 权限集;

具体的,所述S24进一步包括:

根据所述用户的区域权限集、操作项权限集以及网元权限集,确定所述用户的操作权限集。

本发明实施例中,服务器对用户的操作权限集的获取流程,如图6所示,通过对步骤S23中得到的区域权限集、操作项权限集以及网元权限集,进行权限合集处理,最终得到用户的操作权限集。

S25、将所述操作权限集下发到所述客户端。

在本发明实施例中,通过懒加载技术,得到用户的操作权限集,减少数据处理过程无用数据加载,提高了系统效率。通过将得到的操作权限集下发到对应的客户端,以使客户端缓存所述操作权限集,使得客户端采用本地缓存数据就可以完成权限判断,减少网络数据传输量和服务端服务器压力,减少客户端和服务端交互次数,提高权限判断效率,进而有效地提高了系统处理压力和效率。

进一步地,所述方法还包括:

当某一用户的操作权限发生变更时,向所述客户端发送JMS消息,以使所述客户端远程调用服务端接口获取当前用户的更新后的操作权限集;

所述JMS消息用于通知客户端当前用户的操作权限集变更。

在本发明实施例中,在服务端,无论是修改用户组权限(关联操作集或区域变化),操作集权限,用户所从属用户组关系变化等都会引起用户操作权限的变化,此时,服务端采用JMS消息通知权限发生变化用户的客户端进行客户端缓存更新。客户端缓存的用户操作权限集合能够根据服务器发送的JMS消息即时更新,在可以保证权限判断准确性的同时,防止客户端利用之前缓存的旧的操作权限集合进行权限判断,提高用户使用体验。

本发明实施例提出的技术方案可以用于复杂权限管理应用领域, 该方案能够用于权限管项较多较复杂,权限数据量大且权限操作频繁的权限系统,高效完成权限判断,提高用户使用体验。

图7示出了本发明实施例的一种用户权限管理客户端的结构示意图。

参照图7,本发明实施例提出的用户权限管理客户端,具体包括检测模块301和判定模块302,其中:

所述的检测模块301,用于当用户执行当前操作命令时,检测客户端本地是否缓存有所述用户的操作权限集;

所述的判定模块302,用于当本地缓存有所述用户的操作权限集时,根据所述操作权限集判定所述用户是否具有执行当前操作命令的权限。

此外,对于用户权限管理客户端实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

图8示出了本发明实施例的一种用户权限管理服务器的结构示意图。

参照图8,本发明实施例提出的用户权限管理服务器,具体包括接收模块401、获取模块402、处理模块403、确定模块404和发送模块405,其中:

所述的接收模块401,用于接收客户端发送的操作权限集获取请求消息,所述操作权限集获取请求消息中包含用户参数和权限集类型;

所述的获取模块402,用于根据所述用户参数获取用户所属的用户组集合;

所述的处理模块403,用于根据所述权限集类型,采用懒加载机制加载所述用户组集合对应的权限数据;

所述的确定模块404,用于根据所述用户组集合对应的权限数据 确定所述用户的操作权限集;

所述的发送模块405,用于将所述操作权限集下发到所述客户端。

此外,对于用户权限管理服务器实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

综上所述,本发明实施例提供的用户权限管理方法及客户端、服务器,通过在权限处理过程采用懒加载处理数据方法,减少数据处理过程无用数据加载,提高了系统效率,而且通过使客户端利用权限缓存集合判断权限,且采用JMS消息通知客户端权限缓存即时更新,使得客户端权限集合能够即时更新,在可以保证权限判断准确性的同时,又可以保证其高效性,能够解决客户端操作慢而出现卡顿和执行时间过长问题,提高用户使用体验。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的系统中的模块可以按照实施例描述进行分布于实施例的系统中,也可以进行相应变化位于不同于本实施例的一个或多个系统中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出 若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1