权限校验方法、电子设备及存储介质与流程

文档序号:30621715发布日期:2022-07-02 03:28阅读:150来源:国知局
权限校验方法、电子设备及存储介质与流程

1.本发明实施例涉及信息安全技术领域,特别涉及一种权限校验方法、电子设备及存储介质。


背景技术:

2.随着用户数量的爆发式增长,用户权限信息也逐渐增多,为了更好地进行用户权限校验,通常将权限信息存储在数据库中,从而可以通过在数据库中查找相关用户的权限信息以进行权限校验,同时存储在数据库中还有利于利用数据库技术对权限信息进行管理和维护。
3.但是,通过数据库维护权限信息以进行权限校验的方式,面对海量的用户容易出现权限校验失败和查找效率低等问题。


技术实现要素:

4.本发明实施例的目的在于提供一种权限校验方法、电子设备及存储介质,能够降低用户权限信息的数据量,从而避免了由于数据溢出灯导致的校验失败问题,同时还能提高查找效率。
5.为达到上述目的,本发明的实施例提供了一种权限校验方法,包括以下步骤:获取登录用户的用户信息;根据用户信息在预存有所有用户的权限信息的第一存储空间中查找登录用户的权限信息,其中,用户的权限信息是按照预定义的数据字典生成的;将登录用户的权限信息暂存至第二存储空间;在登录用户发送操作请求后,根据第二存储空间暂存的登录用户的权限信息对操作请求进行校验。
6.为解决上述问题,本发明的实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述权限校验方法。
7.为解决上述问题,本发明的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述权限校验方法。
8.本发明实施例提供的权限校验方法,通过第一存储空间维护预存的所有用户的权限信息,通过第二存储空间维护登录用户的权限信息。可以理解的是,用户只有登陆后才能进行操作,因此,登录用户才是具有操作权限校验需求的用户,这样对存储有登录用户的权限信息的第二存储空间进行访问,就能够满足权限校验的需求。而相对于第一存储空间,第二存储空间只存储有登录用户的权限信息,数据量少,避免了数据溢出等问题的出现,从而避免了由于数据溢出导致的校验失败问题。还能提高权限校验时权限信息的查找速度,提高校验效率。此外,第一存储空间和第二存储空间存储的用户的权限信息是基于预定义的数据字典生成的,而基于数据字典能够将冗长的信息转化为简洁的代码,也就是说,借助数据字典定义的数据结构也能够减小信息的数据量,进一步减小了第一存储空间的磁盘空间
占用和第二存储空间的缓存占用,避免了数据溢出导致的校验失败,提高了查找效率。满足了复杂场景下的用户权限管理及校验功能需求,节省了应用开发的时间。
附图说明
9.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
10.图1是本发明一实施例中提供的权限管理及校验方法的流程图;
11.图2是本发明另一实施例中提供的包含生成用户权限信息的步骤的权限管理及校验方法的流程图;
12.图3是本发明另一实施例中提供的包含生成用户登出的步骤的权限管理及校验方法的流程图;
13.图4是本发明另一实施例中提供的权限管理及校验方法的流程图;
14.图5是本发明另一实施例中提供的电子设备的结构示意图。
具体实施方式
15.由背景技术可知,亟需提供一种新的权限校验方法,以解决现有的通过数据库技术来管理权限信息并进行校验所带来的容易校验失败和查找效率低等问题。
16.经分析发现,现有的基于数据库实现的权限校验方法,通常是基于普通的缓存或者语言本身的数据库技术,无法满足海量用户同时进行权限校验的需求,容易出现由于数据溢出以及数据库访问太频繁等导致权限校验失败的问题,从而导致权限管理和校验功能达不到预期的效果,另外,由于用户数据量过于庞大,因此,查找效率很低,进而影响权限校验效率。
17.为解决上述问题,本发明实施例提供了一种权限校验方法,包括以下步骤:获取登录用户的用户信息;根据用户信息在预存有所有用户的权限信息的第一存储空间中查找登录用户的权限信息,其中,用户的权限信息是按照预定义的数据字典生成的;将所述登录用户的权限信息暂存至第二存储空间;在所录用户发送操作请求后,根据第二存储空间暂存的登录用户的权限信息对操作请求进行校验。
18.本发明实施例提供的权限校验方法,通过第一存储空间维护预存的所有用户的权限信息,通过第二存储空间维护登录用户的权限信息。可以理解的是,用户只有登陆后才能进行操作,因此,登录用户才是具有权限校验需求的用户,这样对存储有登录用户的权限信息的第二存储空间进行访问,就能够满足权限校验的需求。而相对于第一存储空间,第二存储空间只存储有登录用户的权限信息,数据量少,避免了数据溢出等问题的出现,从而避免了由于数据溢出导致的校验失败问题。还能提高权限校验时权限信息的查找速度,提高校验效率。此外,第一存储空间和第二存储空间存储的用户的权限信息是基于预定义的数据字典生成的,而基于数据字典能够将冗长的信息转化为简洁的代码,也就是说,借助数据字典定义的数据结构也能够减小信息的数据量,进一步减小了第一存储空间的磁盘空间占用和第二存储空间的缓存占用,避免了数据溢出导致的校验失败,提高了查找效率。满足了复杂场景下的用户权限管理及校验功能需求,节省了应用开发的时间。
19.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本发明所要求保护的技术方案。
20.以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
21.本发明实施例一方面提供了一种权限校验方法,应用于服务器、计算机等电子设备。如图1所示,权限校验方法的流程至少包括以下步骤:
22.步骤101,获取登录用户的用户信息。
23.本实施例中,登录用户是指处于登录状态的用户,用户信息是指示用户身份的信息,如用户注册账号、用户手机号等用户标识。例如,某个服务器提供内容服务,在该服务器提供的网页上注册过的用户,在需要访问该网页时,通过在网页页面输入用户账号、密码等通过验证,完成登录后,该用户被认定为登录用户,获取的该登录用户的用户信息为用户账号。
24.在一些例子中,对用户的登录行为进行监测,一旦监测到有用户通过验证实现登录后,就获取该登录用户的用户信息,其中,用户信息可以包括用户id和用户归属地区。
25.步骤102,根据用户信息在预存有所有用户的权限信息的第一存储空间中查找登录用户的权限信息,其中,用户的权限信息是按照预定义的数据字典生成的。
26.本实施例中,权限信息可以包括:对硬件资源的权限信息、对软件资源的权限信息和对操作动作的权限信息等。第一存储空间可以是数据库,如oracle数据库、db2数据库、sybase数据库等。按照预定义的数据字典生成的用户的权限信息是指基于预定义的数据字典中定义的权限代码,将用户的权限信息按照数据字典中定义的权限代码进行改写。
27.在一些例子中,第一存储空间为mysql数据库,电子设备中部署有mysql组件,根据用户信息在预存有所有用户的权限信息的第一存储空间中查找登录用户的权限信息,可以通过如下方式实现:在监测到至少一个用户登录,即出现新增登录用户后,调用mysql组件,以用户信息为查询依据,在mysql数据库中预先存储的用户权限分配表及用户权限分配明细表中查找并获取登录用户的权限数据,其中,用户权限分配表和用户权限分配明细表都存储有用户权限信息。
28.值得一提的是,通过从第一存储空间获取登录用户的权限信息,然后将登录用户权限信息保存至第二存储空间,从而在进行权限校验时可以通过访问第二存储空间查找权限信息而不需要访问数据量庞大的第一存储空间。并且由于在第二存储空间只存放了登录用户的权限信息,所以数据量少,提高了查找效率,并且若在在检验过程中第二空间发生异常数据丢失,第二存储空间还可以从第一存储空间重新获取用户的权限信息,避免了登录用户权限信息的完全丢失,保证了系统的稳定性。特别地,由于第一存储空间和第二存储空间中存储的权限信息是按照预定义的数据字典生成的,因此,权限信息通过数据字典能够将冗长的信息的转换为简洁的代码,大大降低了权限信息的数据量。
29.具体地说,本发明实施例的另一方面还提供了一种权限校验方法,应用于服务器、计算机等电子设备。如图2所示,步骤102之前,权限校验方法的流程还包括以下步骤:
30.步骤105,根据数据字典确定用户被授予的每一项权限内容对应的数值。
31.本实施例中,数据字典中定义了若干对象和若干操作对应的数值,该数值可以被表示为代码的形式。其中,对象可以包括:数据中心、云服务器、云硬盘以及外网网际互连协议(internet protocol,ip)等软件或硬件,操作可以包括:创建、访问、新增、删除、导出等。
32.特别地,在一些情况下,通过调用电子设备上部署的author manage组件和dick manage组件实现上述步骤105,其中,dick manage组件用于维护预定义的数据字典,author manage组件用于通过访问dick manage组件维护的数据字典生成用户的权限信息。
33.为了便于本领域技术人员更好地理解上述步骤105,以下将以数据字典中定义的数值以8421码表示为例进行说明。
34.将数据中心1的权限值设置为1;将数据中心2的权限值设置为2;将数据中心3的权限值设置为4;将数据中心4的权限值设置为8。
35.将云服务器的权限值设置为1;将云硬盘的权限值设置为2;将公网ip地址的权限值设置为4。当用户仅可访问云硬盘时,相应的,在用户信息表中,可记录用户可访问的资源的权限值为2。
36.将创建操作的权限值设置为1;将更新操作的权限值设置为2;将删除操作的权限值设置为4;将列举操作的权限值设置为8;
37.以操作的数据字典定义方式为例,以下为相应部分的代码:
[0038][0039]
进而,基于上述举例说明的数据字典定义的内容而言,在用户a被授予有访问数据中心1、数据中心2、数据中心3和数据中心4的权限时,用户a被授予的权限内容分别对应的数值为1、2、4和8。
[0040]
当然,以上仅为具体的举例说明,在其他例子中,还可以采用其他方式定义,此处就不再一一赘述了。
[0041]
步骤106,根据确定出的权限内容对应的数值生成用户的权限信息。
[0042]
本实施例中,用户的权限信息可以通过确定出的每一项权限内容对应的数值累加得到的累加和表征,还可以通过确定出的每一项权限内容对应的数值的枚举结果表征等。
[0043]
其中,使用累加和表征时,主要是考虑到在一些特别的编码方式下,累加和与被累加的数据是一一对应的,如8421码。在8421码的编码方式下,数值若是不重复出现,不同数值组合的累加和均不重复,即参与累加的数值与累加和一一对应。因此,在数据字典是基于8421码对各项权限内容进行定义得到的情况下,每一项权限内容对应的数值为8421码值,各项权限内容对应的数值累加之后的和是唯一的,例如,在权限对应的数值累加和为13的情况下,其对应的权限内容的码值唯一确定为1、4和8。也就是说,基于8421码定义的数值的累加和能够反推出参与累加的具体数值组合,因此,每一项权限内容对应的8421码值可以通过其累加唯一表示。
[0044]
基于此,在一些例子中,数据字典是基于8421码对各项权限内容进行定义得到,每一项权限内容对应的数值为8421码值,此时,根据确定出的权限内容对应的数值生成用户的权限信息,可以通过如下方式实现:对属于同一类型的权限内容对应的8421码值进行累加,得到各类型的权限内容对应的8421码值累加和;根据确定出的8421码值累加和,生成登录用户的权限信息。以权限内容涉及操作动作为例,假设创建的权限值为1、更新的权限值为2、删除的权限值为4、列举的权限值为8,在用户对操作动作的权限为创建、删除和列举的情况下,操作动作类型的权限内容对应的8421码值累加和为13(1+4+8),且通过8421码值累加和13可以直接反推出权限信息为用户具有创建、删除和列举的权限。
[0045]
当然,根据确定出的权限内容对应的数值生成用户的权限信息,也可以通过将确定出的权限内容对应的数值保留为用户的权限信息的方式实现等。
[0046]
值得一提的是,在基于8421码定义的数据字典的基础上,使用每项权限的数值的累加和改写操作权限,仍能保留每一项权限的信息,进一步降低了数据量。将所拥有的权限的值相加得到一个和,可以使数据库中的数据更加简洁,更加节省数据库中的存储空间,同时也加快了搜索和校验用户的权限信息的过程。
[0047]
需要说明的是,上述涉及的具体操作权限和资源权限以及与权限内容对应的具体数值,都是为了对本实施例的实现方法进行具体介绍,并不对本实施例产生任何限定,通过上述方式,可根据实际需求在数据字典中定义数据描述。
[0048]
本实施例中,电子设备可以通过调用用于进行用户权限管理的组件,根据上述数据字典内的权限内容为各用户分配权限,建立权限分配表和权限分配明细表。其中,在枚举用户被授予的每一项权限内容对应的数值的情况下,即得到了权限分配明细表,此时,权限明细表作为用户的权限信息。而在使用8421码值定义数据字典的情况下,由于用户被授予的权限内容在多个操作对象中可能存在操作动作不一致的情况,例如,用户被授予对云服务器和云盘的权限,但是对云服务器只被授予了访问的权限,但是对云盘授予了访问和修改的权限,因此,在具备8421码值累加和形成的权限分配表的情况下,还需要具备权限分配明细表,以确定各具有权限的操作对象对应的具有权限的操作动作,从而能够保证能够准确地描述用户的权限信息。
[0049]
在一些例子中,电子设备调用author manage组件进行用户权限管理,其中,分配用户权限的代码格式可以为:
[0050]
int索引,user_id字段,project字段,area_id,values(列表格式字符串)
[0051]
进而归属于地区01的用户1在项目1中的权限为,操作可操作资源instance_ids时,数据中心的权限值为15,可操作的资源类型的权限值为7,操作动作的权限值为5,操作可操作资源cinder_ids时,数据中心的权限值为5,可操作的资源类型的权限值为7,操作动作的权限值为5,根据上述代码格式和用户权限信息得到如下代码:
[0052]
1 user1 project01,area01[15:7:5:instance_ids,5:7:5:cinder_ids,.....]
[0053]
在一些例子中,电子设备调用author manage组件,进行用户权限明细管理,分配用户权限明细的代码格式可以为:
[0054]
int索引,user_id字段,project字段,area_id,flied_name,values(列表格式字符串)
[0055]
进而可操作资源isntance的可操作的具体资源的instance ids为b001、b002等,可操作资源cinder的可操作的具体资源的cinder_ids为a001、a002时,根据上述代码格式和权限信息得到如下代码:
[0056]
1 user1 project01 area01 instance_ids[b001,b002,.....]
[0057]
1 user1 project01 area01 cinder_ids[a001,a002,.....]
[0058]
本实施例中,各用户的权限信息可以是权限管理员通过电子设备提供的交互界面设置从而授予给相应用户的,也可以是开发出与用户的交互界面,以使得用户可以在交互界面上进行购买、定义自身权限等,此处就不再一一赘述了。
[0059]
在一些例子中,在部署了author manage组件的电子设备检测到用户管理员登录并接收到下发的新的权限信息的情况下,电子设备调用dick manage组件根据新的权限信息对权限内容进行更新,其中,更新可以体现为新增、修改以及删除等操作,得到更新后的权限信息,然后,调用author manage组件对第一存储空间内的权限分配表和权限分配明细表进行更新,并在更新的权限信息涉及到登录用户时,将登录用户的权限信息同步更新到第二存储空间中。
[0060]
需要说明的是,本实施例以用户为登录用户时用户的权限信息生成为例进行说明,因此,步骤105和步骤106在步骤101之后,步骤102之前执行。在其他实施例中,用户为非登录用户时,步骤105和步骤106还可以在步骤101之前执行,或者,步骤105和步骤106与步骤101同时执行,即步骤105和步骤106可以在实现本实施例提供的权限校验方法的任一时机实现,此处就不再一一赘述了。
[0061]
步骤103,将登录用户的权限信息暂存至第二存储空间。
[0062]
在一些例子中,电子设备中部署有redis组件、mysql组件等,其中,redis组件用于维护和管理redis数据库,即第二存储空间,mysql组件用户维护和管理mysql数据库,即第一存储空间。此时,将登录用户的权限信息暂存至第二存储空间的方法可以通过如下方式实现:调用redis组件中将查询到的登录用户的权限信息加载到redis数据库。特别地,为了便于维护登录用户的权限信息,redis数据库可以设置两个field来分别维护登录用户的权限信息、权限信息与权限明细信息的对应关系等,也就是说,登录用户的权限信息加载到redis数据库包括将登录用户的权限信息存储到维护用户权限信息的field中,构建用户信
息到权限信息的映射并将映射关系存储到另一个维护用户权限信息与权限明细信息的对应关系的hashset field中。
[0063]
为了便于本领域技术人员更好地理解上述第二存储空间分别设置两个field(或者redis key)来分别维护不同的信息,以下将进行具体的举例说明。
[0064]
redis数据库中用于存储权限信息的field格式为{datacenter_code}:{resourcetype_code}:{operation_code}:{field_name}。例如15:7:5:instance_ids,即用户在数据中心的权限值为15,可操作的资源类型值为7,操作为5,其中,前述数值标识对权限内容代码累加和,instance_ids是具体资源的类型名称,映射到权限明细field上,可以仅包含一个值,也可以包含多个id值。需要说明的是,不对各字段的格式及顺序进行限定。
[0065]
redis数据库中用于存储用户权限明细信息对应关系的field格式如:{user_id}:{project_id}:{area_id}:{field_name}。例如:user1:project01:area01:instance_ids,即用户user1在区域为area01的项目project01对应的存储权限信息中资源类型名称为instance_ids,其中,field是hash set数据类型,以存储多个id值,此处的instance_ids与用于存储权限信息的数据表中的instance_ids字段的值一致,以建立用户权限信息与权限明细之间的关联。
[0066]
值得一提的是,电子设备通过从第一存储空间获取登录用户的权限信息,然后将登录用户权限信息保存至第二存储空间,在进行权限校验时使用第二存储空间中的权限信息,由于在第二存储空间只存放了登录用户的权限信息,所以数据量少,提高了查找效率,并且若在在检验过程中第二空间发生异常数据丢失,第二存储空间还可以从第一存储空间重新获取用户的权限信息,避免了登录用户权限信息的完全丢失,保证了系统的稳定性。
[0067]
步骤104,在登录用户发送操作请求后,根据第二存储空间暂存的登录用户的权限信息对操作请求进行校验。
[0068]
本实施例中,在登录用户发送操作请求后,解析操作请求,得到登录用户的用户信息、操作请求中包含的操作动作和操作对象;根据用户信息从第二存储空间中获取登录用户的权限信息;根据登录用户的权限信息校验登录用户是否对操作动作和操作对象具有操作权限。
[0069]
在一些例子中,接收到登录用户发送的操作请求后,根据用户信息在用户信息和权限信息的对应关系表中,获取与用户信息对应的指示权限信息字段位置的值,最后根据获取到的指示权限信息字段位置的值,从权限信息表中获取用户的具体权限信息。
[0070]
本实施例中,以电子设备部署有软件开发工具包(software development kit,sdk)组件为例进行说明,其中,sdk组件用于执行校验操作。即当登录用户发送操作请求时,电子设备通过调用sdk组件将操作请求中涉及的操作对象和操作动作按照预定义的数据字典进行改写,然后,根据改写后得到的信息与从第二存储空间查找到的权限信息,判断用户是否可以进行该操作。
[0071]
在一些例子中,根据登录用户的权限信息校验登录用户是否对操作动作和操作对象具有操作权限,可以通过如下方式实现:将登录用户的权限信息与操作动作和操作对象对应的权限信息进行二进制位与运算,根据运算结果确定登录用户是否对操作动作和操作对象具有操作权限。例如,将用户请求的资源及操作的信息,参照数据字典,并根据field格
式得到用户请求的资源及操作的权限值为1:4:1,根据用户信息从redis组件获取的用户的权限资源及操作的权限值为5:7:15,基于二进制位与的方式对用户是否可以执行当前请求的资源及操作进行判断,即通过以下方法进行判断:(int(5)&int(1))&&(int(7)&int(4))&&(int(15)&int(1)),运算结果不为0,则说明,用户对请求的操作对象和操作动作具有操作权限。通过将用户请求的资源及操作的信息转换成权限值的形式,并通过二进制位与的方式进行检测,使得检测过程更加简便,检测效率更高。
[0072]
在另一些例子中,第二存储空间基于redis数据库实现,根据登录用户的权限信息校验登录用户是否对操作动作和操作对象具有操作权限,还可以通过如下方式实现:在登录用户的权限信息中包含集合数据时,通过redis数据库提供的sismember功能进行校验。例如,参照数据字典,并根据field格式得到登录用户的请求操作中的资源id的值为[a001,a002,a003],根据登录用户的用户信息从redis组件获取用户权限列表中的id的值为[a001,a002,a003,a004,a005],根据redis中的sismember命令校验用户请求的资源id是否在用户权限列表中,通过上述用户请求的资源id的值和用户权限列表中的资源id的值,判断出用户可以操作上述请求的资源。
[0073]
在另一些例子中,第二存储空间基于redis数据库实现,根据登录用户的权限信息校验登录用户是否对操作动作和操作对象具有操作权限,还可以通过如下方式实现:将登录用户的权限信息与操作动作和操作对象对应的权限信息进行二进制位与运算,在权限信息检验成功的情况下,再根据redis数据库提供的sismember功能校验资源id是否在权限列表中,根据运算结果确定登录用户是否对操作动作和操作对象具有操作权限。例如,将用户请求的资源及操作的信息,参照数据字典,并根据field格式得到用户请求的资源及操作的权限值为1:4:1,请求的资源id的值为[001,002,003,004];根据登录用户信息从redis组件获取的用户的权限资源及操作的权限值为5:7:15,用户权限列表中的资源id的值为[001,002,003,004,005,006]。基于二进制位与的方式对用户是否可以执行当前请求的资源及操作进行判断,即通过以下方法进行判断:(int(5)&int(1))&&(int(7)&int(4))&&(int(15)&int(1)),在运算结果不为0的情况下,再根据redis数据库提供的sismember命令校验资源id是否在权限列表中,由于用户请求的资源id的值为[001,002,003,004],用户权限列表中的资源id的值为[001,002,003,004,005,006],那么通过sismember命令可以判断出资源id在权限列表中。最终判断出用户可以执行当前请求的资源及操作。通过将用户请求的资源及操作的信息转换成权限值的形式,并通过二进制位与的方式进行检测,使得检测过程更加简便,检测效率更高。
[0074]
可以理解的是,用户不会一直保持登录,而在用户登出时,用户不会发出操作请求,也就不需要进行权限校验,进而第二存储空间不需要继续维护和管理该用户的权限信息。
[0075]
基于此,在一些实施例中,如图3所示,步骤104之后,权限校验方法还包括:
[0076]
步骤107,在检测到登录用户的登出行为的情况下,删除第二存储空间中登录用户的权限信息。
[0077]
在一些例子中,预先设置有登出时间阈值,当用户登出后,预设时间内仍保持登出状态,则删除第二存储空间中登录用户的权限信息,例如,设置登出时间阈值为20分钟,在用户a登出系统后的20分钟内继续保留第二存储空间中用户a的权限信息,在用户a登出的
时间超过20分钟的情况下,删除第二空间中用户a的权限信息。
[0078]
在用户的权限信息短时间内不会被需要的情况下,删除第二存储空间中的登录用户的权限信息,避免了不需要的数据占用缓存空间,提高了缓存的利用率和性能。
[0079]
在另一些例子中,还可以根据登录用户的登录习惯设置是否在用户登出之后删除第二存储控件中登录用户的权限信息,例如,用户a的登录习惯为在工作时间段内进行多次登录登出操作,那么可以对工作时间段内用户的登出操作进行忽视,不对第二存储空间中的登录用户的权限信息进行删除,避免因用户的频繁登录登出操作,多次在第一存储空间中进行登录用户权限信息的获取,花费大量时间在反复连接数据库,从而导致运行效率过慢。
[0080]
在又一些例子中,在登录用户保持登录状态且长时间没有进行任何操作的情况下,也可以删除第二存储空间中登录用户的权限信息,例如预设无操作时间阈值为30分钟,在用户a登录后,超过30分钟没有进行任何操作,则删除第二存储空间中用户a的权限信息。对于只进行登录但不进行任何操作的用户的权限信息进行删除,避免不需要用到的数据占用缓存,提高了缓存的利用率。
[0081]
为了使本领域技术人员更好地理解上述方法实施例,以下将以部署有mysql组件、redis组件、author manage组件、sdk组件的电子设备实现上述方法实施例为例进行说明。参考图4,权限校验方法包括:
[0082]
步骤401,调用author manage组件对用户登录行为进行监测。
[0083]
步骤402,在author manage组件监测到有用户登录的情况下,获取登录用户的登录账号。
[0084]
步骤403,将登陆账号传递至mysql组件并调用mysql组件根据登录账号在第一存储空间中进行查找。
[0085]
步骤404,调用redis组件将mysql组件在第一存储空间中查找到的权限信息加载到第二存储空间中。
[0086]
步骤405,调用sdk组件对登录用户的操作请求进行监测。
[0087]
步骤406,在sdk组监测到登录用户的操作请求时,调用sdk组件对操作请求进行解析,得到操作请求对应的用户账号、操作请求中包含的操作动作和操作对象。
[0088]
步骤407,将操作请求对应的用户账号传递至redis组件并调用redis组件根据用户账号在第二存储空间中查找对应的权限信息。
[0089]
步骤408,将redis组件在第二存储空间中查找到的权限信息传递至sdk组件并调用sdk组件根据权限信息对操作请求中包含的操作动作和操作对象进行权限校验。
[0090]
步骤409,在权限校验通过的情况下,对操作请求进行响应并将响应结果返回给相应用户。
[0091]
当然,以上仅为以第一存储空间为mysql数据库、第二存储空间为redis数据库等为例进行说明。在其他实施例中,第一存储空间和第二存储空间可以为其他数据库,且调用的组件可以是其他组件,甚至可以不采用组件的方式实现,此处就不再一一赘述了。
[0092]
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法
和流程的核心设计都在该专利的保护范围内。
[0093]
本发明的实施例另一方面还提供了一种电子设备,如图5所示,包括:至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器301能够执行上述任一方法实施例所描述的权限校验方法。
[0094]
其中,存储器502和处理器501采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器501和存储器502的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器501处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传输给处理器501。
[0095]
处理器501负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器502可以被用于存储处理器501在执行操作时所使用的数据。
[0096]
本发明实施方式另一方面还提供了一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
[0097]
即,本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0098]
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1