CN106789989B - 一种用户权限验证方法及装置 - Google Patents
一种用户权限验证方法及装置 Download PDFInfo
- Publication number
- CN106789989B CN106789989B CN201611127829.3A CN201611127829A CN106789989B CN 106789989 B CN106789989 B CN 106789989B CN 201611127829 A CN201611127829 A CN 201611127829A CN 106789989 B CN106789989 B CN 106789989B
- Authority
- CN
- China
- Prior art keywords
- operation requests
- user
- capability identification
- presetting
- controller
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000013507 mapping Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 3
- 238000000151 deposition Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种用户权限验证方法及装置,应用于互联网领域,该方法包括:检测到当前登录权限验证系统的操作用户的操作请求时,获取与操作用户的用户ID关联的M个权限标识,操作请求用于从目标数据库中的数据进行操作;获取与操作请求对应的路由标识;判断M个权限标识中是否存在与路由标识相同的标识;如果M个权限标识中存在与路由标识相同的标识,进入处理操作请求的控制器。通过本发明减少了用户权限判断的代码量,能够避免遗漏权限判断,从而提高了用户权限验证的准确性和执行效率。
Description
技术领域
本发明涉及互联网领域,尤其涉及一种用户权限验证方法及装置。
背景技术
数据库按照数据结构来组织、存储和管理数据的仓库,用户可以对仓库中的数据进行查看、新增、更新、删除等操作。而不同的登录用户需要设置不同的对数据库进行操作的权限,一些用户设置为只有执行查看操作的权限,而一些用户设置为查看、新增、更新操作的权限。
在现有技术中,为了不同用户对同一数据库有不同的操作权限,在各个控制器里面判断权限,比如,在查看控制器中设置权限判断。具体的,判断当前执行查看操作的用户是否有查看权限,又在删除控制器中设置权限判断,判断当前执行新增操作的用户是否有新增权限。可以看出,现有技术不仅代码量大,而且很容易遗漏权限判断。
发明内容
本发明实施例通过提供一种用户权限验证方法及装置,解决了现有技术中用户权限验证代码量大、容易遗漏权限判断的技术问题。
第一方面,本发明实施例提供了一种用户权限验证方法,包括:
检测到当前登录所述权限验证系统的操作用户的操作请求时,获取与所述操作用户的用户ID关联的M个权限标识,M为正整数,所述操作请求用于请求对所述目标数据库中的存储对象进行操作;
获取与所述操作请求对应的路由标识;
判断所述M个权限标识中是否存在与所述路由标识相同的标识;
如果所述M个权限标识中存在与所述路由标识相同的标识,进入处理所述操作请求的控制器。
优选的,所述获取与所述操作用户的用户ID关联的M个权限标识,包括:
从预设用户角色关联表中查询与所述用户ID关联的目标角色ID;
如果查询到至少一个与所述用户ID关联的目标角色ID,从预设角色权限关联表中查询与所述目标角色ID关联的目标权限ID,否则权限验证失败;
如果查询到至少一个与所述目标角色ID关联的目标权限ID,从预设权限表中获取所述目标权限ID的权限标识,否则权限验证失败。
优选的,所述获取与所述操作请求对应的路由标识,包括:
从所述操作请求中提取请求URL;
查询用于映射所述请求URL到处理所述操作请求的控制器的路由标识。
优选的,如果在所述控制器内添加有逻辑与组合的N个预设定权限标识符,N为正整数,在所述进入处理所述操作请求的控制器之后,所述方法还包括:
判断所述操作请求是否满足第一预设规则;
如果所述操作请求满足所述第一预设规则,判断所述M个权限标识中是否同时存在所述N个预设定权限标识符,否则处理所述操作请求;
如果所述M个权限标识中同时存在所述N个预设定权限标识符,处理所述操作请求,否则权限验证失败。
优选的,如果在所述控制器内添加有逻辑非组合的K个预设定权限标识符,K为正整数,在所述进入处理所述操作请求的控制器之后,所述方法还包括:
判断所述操作请求是否满足第二预设规则;
如果所述操作请求满足所述第二预设规则,判断所述M个权限标识中是否存在所述K个预设定权限标识符中的一个,否则处理所述操作请求;
如果所述M个权限标识中存在所述K个预设定权限标识符中的一个,处理所述操作请求,否则权限验证失败。
第二方面,本发明实施例提供了一种用户权限验证装置,包括:
权限标识获取单元,用于检测到当前登录所述权限验证系统的操作用户的操作请求时,获取与所述操作用户的用户ID关联的M个权限标识,M为正整数,所述操作请求用于请求对所述目标数据库中的存储对象进行操作;
路由标识获取单元,用于获取与所述操作请求对应的路由标识;
判断单元,用于判断所述M个权限标识中是否存在与所述路由标识相同的标识;
进入单元,用于如果所述M个权限标识中存在与所述路由标识相同的标识,进入处理所述操作请求的控制器。
优选的,所述权限标识获取单元,包括:
角色ID查询子单元,用于从预设用户角色关联表中查询与所述用户ID关联的目标角色ID;
权限ID查询子单元,用于如果查询到至少一个与所述用户ID关联的目标角色ID,从预设角色权限关联表中查询与所述目标角色ID关联的目标权限ID,否则权限验证失败;
权限标识查询子单元,如果查询到至少一个与所述目标角色ID关联的目标权限ID,从预设权限表中获取所述目标权限ID的权限标识,否则权限验证失败。
优选的,所述路由标识获取单元,包括:
URL提取子单元,用于从所述操作请求中提取请求URL;
路由标识查询子单元,用于查询用于映射所述请求URL到处理所述操作请求的控制器的路由标识。
优选的,如果在所述控制器内添加有逻辑与组合的N个预设定权限标识符,N为正整数,所述装置还包括:
第一规则判断单元,用于判断所述操作请求是否满足第一预设规则;
第一请求处理单元,用于如果所述操作请求满足所述第一预设规则,判断所述M个权限标识中是否同时存在所述N个预设定权限标识符,否则处理所述操作请求;如果所述M个权限标识中同时存在所述N个预设定权限标识符,处理所述操作请求,否则权限验证失败。
优选的,如果在所述控制器内添加有逻辑非组合的K个预设定权限标识符,K为正整数,所述装置还包括:
第二规则判断单元,用于判断所述操作请求是否满足第二预设规则;
第二请求处理单元,用于如果所述操作请求满足所述第二预设规则,判断所述M个权限标识中是否存在所述K个预设定权限标识符中的一个,否则处理所述操作请求;如果所述M个权限标识中存在所述K个预设定权限标识符中的一个,处理所述操作请求,否则权限验证失败。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
由于检测到当前登录权限验证系统的操作用户的操作请求时,获取与操作用户的用户ID关联的M个权限标识,以及与操作请求对应的路由标识;判断M个权限标识中是否存在与路由标识相同的标识;存在则进入处理操作请求的控制器,从而通过路由标识对操作用户的权限统一进行验证,而不需要先进入控制器后,才在控制器内进行用户权限判断,因此不需要在每个控制器中写入验证用户权限的代码,以减少了用户权限判断的代码量,也正因不需要在每个控制器内写入验证用户权限的代码,能够避免遗漏权限判断,从而提高了用户权限验证的准确性和执行效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的用户权限验证方法的流程图;
图2A为本发明提供的一优选用户权限验证方法实施例的流程图;
图2B为本发明提供的另一优选用户权限验证方法实施例的流程图;
图3为本发明实施例提供的用户权限验证装置的功能单元图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种用户权限验证方法,应用于与目标数据库关联的权限验证系统,管理模块、目标数据库和权限验证系统。管理模块用于录入数据到目标数据库中,以生成存储对象,比如产品信息、图书信息。管理模块还用于录入用户表、角色表、建立用户角色关联表和建立角色权限关联表,管理模块还用于对目标数据库的存储对象进行查看、添加、修改、删除等操作,权限验证系统用于对当前登录权限验证系统的操作用户的权限进行验证。
参考图1所示,本发明实施例提供的用户权限验证方法包括:
S101、检测到当前登录权限验证系统的操作用户的操作请求时,获取与操作用户的用户ID关联的M个权限标识,M为正整数,操作请求用于对目标数据库中的存储对象进行操作;
S102、获取与操作请求对应的路由标识;
S103、判断M个权限标识中是否存在与路由标识相同的标识;
S103、如果M个权限标识中存在与路由标识相同的标识,进入处理操作请求的控制器。
在本发明实施例中,目标数据库中的预设各个数据表包含的字段如下:
用户表:用户ID,用户名称。
角色表:角色ID,角色名称。
用户角色关联表:用户ID,角色ID。
权限表:权限ID,权限标识,权限名称。
角色权限关联表:角色ID,权限ID。
在预设用户角色关联表中,一个用户ID可以关联多个角色ID。在预设角色权限关联表中,一个角色ID可以关联多个权限ID。目标数据库中的数据表结构信息在数据管理系统初始化时建立。数据表中的数据可以在系统运行中使用管理模块随时添加、修改、删除。
需要说明的是,Laravel框架与MVC(Model View Controller,模型-视图-控制器)框架结合实现步骤S101~S104。具体的,通过在Laravel框架中加入中间件执行S101~S104,对统一权限进行判断。Laravel框架为PHP Web开发框架(PHP Web Framework)。MVC框架分为三个基本部分:模型、视图和控制器。在本发明实施例中,通过控制器负责转发操作请求、以及对操作请求进行处理。不同类型的操作请求对应不同的控制器。具体举例来讲,操作请求为编辑请求,对应进入编辑产品的控制器;操作请求为查看请求,对应进入查看产品的控制器;操作请求;操作请求为删除请求,对应进入删除产品的控制器。视图负责处理显示部分,模型负责处理逻辑部分。
下面,结合图1详细介绍本发明实施例提供的用户权限验证方法的具体实现步骤:
S101、检测当前登录权限验证系统的操作用户的操作请求时,获取与操作用户的用户ID关联的M个权限标识,M为正整数,操作请求用于请求对目标数据库中的数据进行操作。
具体的,操作用户包括查看请求、删除请求、添加请求、修改请求。
在一实施例中,S101包括:从预设用户角色关联表中查询与用户ID关联的目标角色ID;如果查询到至少一个与用户ID关联的目标角色ID,从预设角色权限关联表中查询与目标角色ID关联的目标权限ID,否则权限验证失败;如果查询到至少一个与目标角色ID关联的目标权限ID,从预设权限表中获取目标权限ID的权限标识,否则权限验证失败。
在具体实施过程中,在从预设用户角色关联表中查询与用户ID关联的目标角色ID之前,根据操作用户的用户名称,从预设用户表中查询操作用户的用户ID。
在S101之后,接着执行S102、获取与操作请求对应的路由标识;
具体的,从操作请求中提取请求URL(Uniform Resoure Locator:统一资源定位符);查询用于映射请求URL到处理操作请求的控制器的路由标识。
在本发明实施例中,路由标识是指将操作请求的请求URL映射到处理操作请求的控制器的标识。路由器是处理路由功能的程序。路由器根据路由规则将请求URL映射到处理操作请求的控制器,路由规则是指将操作请求的请求URL映射到处理操作请求的控制器的规则。
在具体实施过程中,使用Laravel框架的$request对象。具体的,通过$request->route()->getActionName()函数获取Laravel框架下的当前路由标识字符串作为操作请求的路由标识。
在S102之后,接着执行S103:判断M个权限标识中是否存在与路由标识相同的标识。
具体的,通过将路由标识分别与M个权限标识一一进行对比,以判断出M个权限标识中是否存在与路由标识相同的标识。
在S103之后,接着执行S104:如果M个权限标识中存在与路由标识相同的标识,进入处理操作请求的控制器。在S103之后,如果M个权限标识中不存在与路由标识相同的标识,返回权限验证失败。
通过上述技术方案,利用Laravel框架的路由标识对用户权限进行统一验证,验证成功再进入MVC框架对应的控制器,从而避免了在每个控制器中进行判断用户权限。实现了减少代码量,且不会遗漏权限判断。
进一步的,本发明实施例还提供了另一实施例:对用户权限进行统一验证同时,根据实际的业务逻辑需求,控制器添加一个或多个预设定权限标识符。比如,使用特定前缀的自定义字符串。
具体的,如果添加多个预设定权限标识符,根据不同的业务逻辑需求,多个预设定权限标识符为逻辑非组合,或者多个预设定权限标识符为逻辑与组合。
在进入处理操作请求的控制器之后,如果进入的控制器内不存在预设定权限标识符,则处理操作请求。
具体的,如果进入的控制器内添加有逻辑与组合的N个预设定权限标识符,N为正整数,在进入处理操作请求的控制器之后,参考图2A所示,本发明实施例还提供了如下步骤:
S105:判断操作请求是否满足第一预设规则;
S106:如果操作请求满足第一预设规则,判断M个权限标识中是否同时存在N个预设定权限标识符,否则处理操作请求;
S107:如果M个权限标识中同时存在N个预设定权限标识符,处理操作请求,否则权限验证失败。
具体的,在进入处理操作请求的控制器之后,如果在控制器内添加有逻辑非组合的K个预设定权限标识符,K为正整数,在进入处理操作请求的控制器之后,参考图2B所示,本发明实施例还提供了如下步骤:
S105’:判断操作请求是否满足第二预设规则;
S106’如果操作请求满足第二预设规则,判断M个权限标识中是否存在K个预设定权限标识符中的一个,否则处理操作请求;
S107’如果M个权限标识中存在K个预设定权限标识符中的一个,处理操作请求,否则权限验证失败。
下面以控制器内添加一个预设定权限标识符,第一预设规则为:产品价格大于预设价格阈值为例,判断操作请求是否满足第一预设规则,具体为:判断操作请求针对产品的产品价格是否大于预设价格阈值。
以预设价格下限设置为一万元为例,判断删除请求所针对产品的产品价格是否大于一万元,如果大于一万元,判断M个权限标识中是否存在预设权限字符串,如果小于或等于一万元,处理操作请求。
下面以控制器内添加两个非组合的预设定权限标识符A、B,预设定权限标识符A用于产品价格大于预设价格阈值时的用户权限判断,预设定权限标识符B用于产品成本大于预设成本阈值时的用户权限判断。
对应的,判断操作请求是否满足第二预设规则,具体为:判断操作请求针对产品的产品价格是否大于预设价格阈值,以及判断操作请求针对产品的产品成本是否大于预设成本阈值。如果产品价格大于预设价格阈值,判断M个权限标识中是否存在预设定权限标识符A;如果成本价格大于预设成本阈值,判断M个权限标识中是否存在预设定权限标识符B,如果M个权限标识中存在预设定权限标识符A或预设定权限标识符B,则权限验证通过,进而处理操作请求,否则权限验证失败。
预设定权限标识符C用于产品价格大于预设价格阈值时的用户权限判断,预设定权限标识符D用于产品成本大于预设成本阈值时的用户权限判断。对应的,判断操作请求是否满足第一预设规则,具体为:判断操作请求针对产品的产品价格是否大于预设价格阈值,以及判断操作请求针对产品的产品成本是否大于预设成本阈值。
如果产品价格大于预设价格阈值,判断M个权限标识中是否存在预设定权限标识符C;如果成本价格大于预设成本阈值,判断M个权限标识中是否存在预设定权限标识符D。如果M个权限标识中同时存在预设定权限标识符C和预设定权限标识符D,则权限验证通过,进而处理操作请求,如果M个权限标识中存在预设定权限标识符A、或者预设定权限标识符B、或者均不存在,则权限验证失败。
下面,给出多个具体实施例,对本发明提供的一种用户权限验证方法进行举例说明:
首先,给出各个数据表的举例:
参考下表1所示,以三组用户对预设用户表进行举例说明,但是不用于限制本发明,预设用户表中包括用户名称和与用户名称对应的用户ID,在具体实施过程中,预设用户表中可以增加更多组用户。
表1.预设用户表
用户ID | 用户名称 |
1 | 张三 |
2 | 李四 |
3 | 王五 |
下面,参考下表2,以三组角色对预设角色表进行举例说明,但是不用于限制本发明,预设角色表中包括角色名称和与角色名称对应的角色ID,在具体实施过程中,预设角色表中可以增加更多组角色。
表2.预设角色表
角色ID | 角色名称 |
1 | 老板 |
2 | 经理 |
3 | 员工 |
下面以表1中的用户ID和表2中的角色ID建立用户角色关联表,建立的用户角色关联表参考下表3所示,但是不用于限制本发明,在具体实施过程中,用户角色关联表中可以增加更多组用户ID与角色ID的关联。
表3.预设用户角色关联表
用户ID | 角色ID |
1 | 1 |
2 | 2 |
3 | 3 |
下面参考下表4,以四组权限ID对预设权限表进行举例说明,预设权限表中包括权限ID、与权限ID对应的权限标识、权限名称,预设权限表中可以增加更多组权限。
表4.预设权限表
下面,参考下表5,以表4中的权限ID与表3中的角色ID对角色权限关联表进行举例说明,但是不用于限制本发明,在具体实施过程中,角色权限关联表中可以增加更多组角色ID与权限ID关联。
表5.角色权限关联表
角色ID | 权限ID |
1 | 1 |
1 | 2 |
1 | 3 |
1 | 4 |
2 | 1 |
2 | 2 |
2 | 3 |
3 | 1 |
基于上述举例的表1~表5,本发明提供多个实施例:
实施例一:
对于操作请求为查看请求,假设王五已登录,检测到王五的查看请求,进入了查看产品的网址,如http://www.example.com/product/view/1,依次进行如下权限判断步骤:
1、获取到王五用户ID为3;
2、从预设用户角色关联表中获取到与用户ID为3关联的角色ID为3;
3、从预设角色权限关联表中获取到与角色ID为3关联的权限ID为1;
4、从预设权限表中获取到权限ID为1的权限标识为App\Http\Controllers\ProductController@view;
5、获取查看请求对应的路由标识:App\Http\Controllers\ProductController@view,跟上一步骤获取的权限标识对比,相同,进入处理查看请求的控制器。用于处理查看请求的控制器里没有自定义权限判断单元,验证流程通过,处理查看请求,以向操作用户呈现查看的产品。
实施例二:
对于操作请求为查看请求,假设王五已登录,进入了编辑产品的网址,如http://www.example.com/product/edit/1,依次进行如下权限判断步骤:
1、获取到王五用户ID为3;
2、从预设用户角色关联表中获取到与用户ID为3关联的角色ID为3;
3、从预设角色权限关联表中获取到与角色ID为3关联的权限ID为1;
4、从预设权限表中获取到权限ID为1的权限标识为App\Http\Controllers\ProductController@view;
5、获取编辑请求对应的路由标识:App\Http\Controllers\ProductController@edit,跟上一步骤获取的权限标识对比,不同则权限认证失败,不处理编辑请求。
实施例三:
对于操作请求为删除请求,在用于删除产品的操作请求的控制器里面添加自定义权限判断单元,如果价格大于1万,则判断获取的M个权限标识中是否有custom_high_price_product_delete权限标识。
具体的,张三和李四权限判断步骤如下:
假设张三已登录,进入了删除产品的网址,如http://www.example.com/product/delete/1,则权限判断步骤如下:
1、获取到张三用户ID为1。
2、从预设用户角色关联表里获取到用户ID为1关联的角色ID为1。
3、从预设角色权限关联表里获取到角色ID为1关联的权限ID为1,2,3,4。
4、从预设权限表面获取到权限ID为1,2,3、4的权限标识为:App\Http\Controllers\ProductController@viewApp\Http\Controllers\ProductController@edit,App\Http\Controllers\ProductController@delete,custom_high_price_product_delete。
5、获取删除请求对应的路由标识:App\Http\Controllers\ProductController@delete,跟上一步骤获取的权限标识对比,如果存在路由标识App\Http\Controllers\ProductController@delete,继续进入用于处理删除请求的控制器。
判断删除请求针对产品的价格是否大于1万,如果删除请求针对产品的价格小于或等于1万,删除该产品。如果删除请求针对产品的价格大于1万,对比权限标识high_price_product_delete是否包含在获取的M个权限标识中,包含在获取的权限标识中,删除该价格大于1万的产品。
假设李四已登录,进入了删除产品的网址,如http://www.example.com/product/delete/1,则权限判断步骤如下:
1、获取到李四用户ID为2。
2、从预设用户角色关联表里获取到用户ID为2的角色ID为2。
3、从预设角色权限关联表里获取到用户ID为2的权限ID为1,2,3。
4、从权限表里面,获取到权限标识为App\Http\Controllers\ProductController@view,App\Http\Controllers\ProductController@edit,App\Http\Controllers\ProductController@delete。
5、获取删除请求对应的路由标识:App\Http\Controllers\ProductController@delete,跟上一步的权限标识对比,包含路由标识:App\Http\Controllers\ProductController@delete,进入处理删除请求的控制器。
6、处理删除请求的控制器有自定义权限判断单元。如果删除请求针对产品的价格小于或等于一万,删除该产品。如果删除请求针对产品的价格大于1万,对比权限标识high_price_product_delete是否包含在获取的M个权限标识中,没有包含在获取的权限标识中,权限验证失败。
基于同一发明构思,本发明实施例提供了一种用户权限验证装置,参考图3所示,包括:
权限标识获取单元201,用于检测到当前登录所述权限验证系统的操作用户的操作请求时,获取与所述操作用户的用户ID关联的M个权限标识,M为正整数,所述操作请求用于请求对所述目标数据库中的存储对象进行操作;
路由标识获取单元202,用于获取与所述操作请求对应的路由标识;
判断单元203,用于判断所述M个权限标识中是否存在与所述路由标识相同的标识;
进入单元204,用于如果所述M个权限标识中存在与所述路由标识相同的标识,进入处理所述操作请求的控制器。
优选的,所述权限标识获取单元201,包括:
角色ID查询子单元,用于从预设用户角色关联表中查询与所述用户ID关联的目标角色ID;
权限ID查询子单元,用于如果查询到至少一个与所述用户ID关联的目标角色ID,从预设角色权限关联表中查询与所述目标角色ID关联的目标权限ID,否则权限验证失败;
权限标识查询子单元,如果查询到至少一个与所述目标角色ID关联的目标权限ID,从预设权限表中获取所述目标权限ID的权限标识,否则权限验证失败。
优选的,所述路由标识获取单元202,包括:
URL提取子单元,用于从所述操作请求中提取请求URL;
路由标识查询子单元,用于查询用于映射所述请求URL到处理所述操作请求的控制器的路由标识。
优选的,如果在所述控制器内添加有逻辑与组合的N个预设定权限标识符,N为正整数,所述装置还包括:
第一规则判断单元,用于判断所述操作请求是否满足第一预设规则;
第一请求处理单元,用于如果所述操作请求满足所述第一预设规则,判断所述M个权限标识中是否同时存在所述N个预设定权限标识符,否则处理所述操作请求;如果所述M个权限标识中同时存在所述N个预设定权限标识符,处理所述操作请求,否则权限验证失败。
优选的,如果在所述控制器内添加有逻辑非组合的K个预设定权限标识符,K为正整数,所述装置还包括:
第二规则判断单元,用于判断所述操作请求是否满足第二预设规则;
第二请求处理单元,用于如果所述操作请求满足所述第二预设规则,判断所述M个权限标识中是否存在所述K个预设定权限标识符中的一个,否则处理所述操作请求;如果所述M个权限标识中存在所述K个预设定权限标识符中的一个,处理所述操作请求,否则权限验证失败。本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
由于检测到当前登录与目标数据库关联的权限验证系统的操作用户的操作请求时,获取与操作用户的用户ID关联的M个权限标识,以及与操作请求对应的路由标识;判断M个权限标识中是否存在与路由标识相同的标识;存在则进入处理操作请求的控制器,从而通过路由标识对操作用户的权限统一进行验证,而不需要先进入控制器,在控制器内进行用户权限判断,因此不需要在每个控制器中写入验证用户权限的代码,以减少了用户权限判断的代码量,也正因不需要在每个控制器内写入验证用户权限的代码,能够避免遗漏权限判断,从而提高了用户权限验证的准确性和执行效率。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种用户权限验证方法,应用于与目标数据库关联的权限验证系统,其特征在于,包括:
检测到当前登录所述权限验证系统的操作用户的操作请求时,获取与所述操作用户的用户ID关联的M个权限标识,M为正整数,所述操作请求用于请求对所述目标数据库中的存储对象进行操作;
获取与所述操作请求对应的路由标识;
判断所述M个权限标识中是否存在与所述路由标识相同的标识;
如果所述M个权限标识中存在与所述路由标识相同的标识,进入处理所述操作请求的控制器。
2.如权利要求1所述的用户权限验证方法,其特征在于,所述获取与所述操作用户的用户ID关联的M个权限标识,包括:
从预设用户角色关联表中查询与所述用户ID关联的目标角色ID;
如果查询到至少一个与所述用户ID关联的目标角色ID,从预设角色权限关联表中查询与所述目标角色ID关联的目标权限ID,否则权限验证失败;
如果查询到至少一个与所述目标角色ID关联的目标权限ID,从预设权限表中获取所述目标权限ID的权限标识,否则权限验证失败。
3.如权利要求1所述的用户权限验证方法,其特征在于,所述获取与所述操作请求对应的路由标识,包括:
从所述操作请求中提取请求URL;
查询用于映射所述请求URL到处理所述操作请求的控制器的路由标识。
4.如权利要求1-3中任一所述的用户权限验证方法,其特征在于,如果在所述控制器内添加有逻辑与组合的N个预设定权限标识符,N为正整数,在所述进入处理所述操作请求的控制器之后,所述方法还包括:
判断所述操作请求是否满足第一预设规则;
如果所述操作请求满足所述第一预设规则,判断所述M个权限标识中是否同时存在所述N个预设定权限标识符,否则处理所述操作请求;
如果所述M个权限标识中同时存在所述N个预设定权限标识符,处理所述操作请求,否则权限验证失败。
5.如权利要求1-3中任一所述的用户权限验证方法,其特征在于,如果在所述控制器内添加有逻辑非组合的K个预设定权限标识符,K为正整数,在所述进入处理所述操作请求的控制器之后,所述方法还包括:
判断所述操作请求是否满足第二预设规则;
如果所述操作请求满足所述第二预设规则,判断所述M个权限标识中是否存在所述K个预设定权限标识符中的一个,否则处理所述操作请求;
如果所述M个权限标识中存在所述K个预设定权限标识符中的一个,处理所述操作请求,否则权限验证失败。
6.一种用户权限验证装置,其特征在于,包括:
权限标识获取单元,用于检测到当前登录权限验证系统的操作用户的操作请求时,获取与所述操作用户的用户ID关联的M个权限标识,M为正整数,所述操作请求用于请求对目标数据库中的存储对象进行操作;
路由标识获取单元,用于获取与所述操作请求对应的路由标识;
判断单元,用于判断所述M个权限标识中是否存在与所述路由标识相同的标识;
进入单元,用于如果所述M个权限标识中存在与所述路由标识相同的标识,进入处理所述操作请求的控制器。
7.如权利要求6所述的用户权限验证装置,其特征在于,所述权限标识获取单元,包括:
角色ID查询子单元,用于从预设用户角色关联表中查询与所述用户ID关联的目标角色ID;
权限ID查询子单元,用于如果查询到至少一个与所述用户ID关联的目标角色ID,从预设角色权限关联表中查询与所述目标角色ID关联的目标权限ID,否则权限验证失败;
权限标识查询子单元,如果查询到至少一个与所述目标角色ID关联的目标权限ID,从预设权限表中获取所述目标权限ID的权限标识,否则权限验证失败。
8.如权利要求6所述的用户权限验证装置,其特征在于,所述路由标识获取单元,包括:
URL提取子单元,用于从所述操作请求中提取请求URL;
路由标识查询子单元,用于查询用于映射所述请求URL到处理所述操作请求的控制器的路由标识。
9.如权利要求6-8中任一所述的用户权限验证装置,其特征在于,如果在所述控制器内添加有逻辑与组合的N个预设定权限标识符,N为正整数,所述装置还包括:
第一规则判断单元,用于判断所述操作请求是否满足第一预设规则;
第一请求处理单元,用于如果所述操作请求满足所述第一预设规则,判断所述M个权限标识中是否同时存在所述N个预设定权限标识符,否则处理所述操作请求;如果所述M个权限标识中同时存在所述N个预设定权限标识符,处理所述操作请求,否则权限验证失败。
10.如权利要求6-8中任一所述的用户权限验证装置,其特征在于,如果在所述控制器内添加有逻辑非组合的K个预设定权限标识符,K为正整数,所述装置还包括:
第二规则判断单元,用于判断所述操作请求是否满足第二预设规则;
第二请求处理单元,用于如果所述操作请求满足所述第二预设规则,判断所述M个权限标识中是否存在所述K个预设定权限标识符中的一个,否则处理所述操作请求;如果所述M个权限标识中存在所述K个预设定权限标识符中的一个,处理所述操作请求,否则权限验证失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611127829.3A CN106789989B (zh) | 2016-12-09 | 2016-12-09 | 一种用户权限验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611127829.3A CN106789989B (zh) | 2016-12-09 | 2016-12-09 | 一种用户权限验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106789989A CN106789989A (zh) | 2017-05-31 |
CN106789989B true CN106789989B (zh) | 2019-08-02 |
Family
ID=58882105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611127829.3A Active CN106789989B (zh) | 2016-12-09 | 2016-12-09 | 一种用户权限验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106789989B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108230089A (zh) * | 2017-12-06 | 2018-06-29 | 链家网(北京)科技有限公司 | 一种在线订单处理方法、系统及装置 |
CN108055312B (zh) * | 2017-12-07 | 2021-07-09 | 畅捷通信息技术股份有限公司 | 路由方法及其装置与计算机装置及其可读存储介质 |
CN110955872A (zh) * | 2019-12-12 | 2020-04-03 | 北京金山云科技有限公司 | 一种权限控制方法、装置、终端以及介质 |
CN113495921B (zh) * | 2020-04-02 | 2023-09-26 | 北京京东振世信息技术有限公司 | 一种数据库集群的路由方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2330820A1 (en) * | 2008-09-10 | 2011-06-08 | NEC Corporation | Content distribution system |
CN102339367A (zh) * | 2010-07-27 | 2012-02-01 | 中兴通讯股份有限公司 | 一种权限控制方法及装置 |
CN103400067A (zh) * | 2013-03-29 | 2013-11-20 | 青岛海信电器股份有限公司 | 权限管理方法、系统及服务器 |
CN103684878A (zh) * | 2013-12-30 | 2014-03-26 | 大唐移动通信设备有限公司 | 一种操作命令参数管控方法和设备 |
CN106095939A (zh) * | 2016-06-12 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 账户权限的获取方法和装置 |
-
2016
- 2016-12-09 CN CN201611127829.3A patent/CN106789989B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2330820A1 (en) * | 2008-09-10 | 2011-06-08 | NEC Corporation | Content distribution system |
CN102339367A (zh) * | 2010-07-27 | 2012-02-01 | 中兴通讯股份有限公司 | 一种权限控制方法及装置 |
CN103400067A (zh) * | 2013-03-29 | 2013-11-20 | 青岛海信电器股份有限公司 | 权限管理方法、系统及服务器 |
CN103684878A (zh) * | 2013-12-30 | 2014-03-26 | 大唐移动通信设备有限公司 | 一种操作命令参数管控方法和设备 |
CN106095939A (zh) * | 2016-06-12 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 账户权限的获取方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106789989A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789989B (zh) | 一种用户权限验证方法及装置 | |
US11356440B2 (en) | Automated IoT device registration | |
CN104079543B (zh) | 智能家居系统监控权限的获取方法、装置和系统 | |
CN108200050A (zh) | 单点登录服务器、方法及计算机可读存储介质 | |
EP3620999A1 (en) | Governed access to rpa bots | |
JP5191376B2 (ja) | リスクベース認証システムおよび危険度情報取得サーバならびにリスクベース認証方法 | |
CN103347002B (zh) | 社会化登录方法、系统和装置 | |
CN103795690B (zh) | 一种云访问控制的方法、代理服务器和系统 | |
CN103618717B (zh) | 多账户客户信息的动态认证方法、装置和系统 | |
CN104468553B (zh) | 一种公共账号登录的方法、装置及系统 | |
CN105007280A (zh) | 一种应用登录方法和装置 | |
CN104580211B (zh) | 一种基于soa架构的侵入式系统 | |
JP2018536232A (ja) | ウェブアプリケーションへのサインオンを制御するためのシステムおよび方法 | |
US10003592B2 (en) | Active directory for user authentication in a historization system | |
WO2021061419A1 (en) | Template-based onboarding of internet-connectible devices | |
CN103023885B (zh) | 安全数据处理方法及系统 | |
CN106656927A (zh) | 将Linux账号加入AD域的方法及装置 | |
CN109388937A (zh) | 一种多因子身份认证的单点登录方法及登录系统 | |
CN105553671B (zh) | 一种数字证书的管理方法、装置及系统 | |
KR20140112643A (ko) | 이종 서비스 간 서비스 제공 방법과 사용자 단말 및 웹 서버 | |
CN105991610A (zh) | 登录应用服务器的方法及装置 | |
CN109241712A (zh) | 一种用于访问文件系统的方法和装置 | |
CN103002052B (zh) | 云数据库中的资源定位方法和装置 | |
CN106982228A (zh) | 一种实现身份认证的方法及系统 | |
US11956639B2 (en) | Internet of things device provisioning |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231124 Address after: Room 606-609, Compound Office Complex Building, No. 757, Dongfeng East Road, Yuexiu District, Guangzhou, Guangdong Province, 510699 Patentee after: China Southern Power Grid Internet Service Co.,Ltd. Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |