CN113486383B - 一种前端元素的权限控制方法、装置、存储介质和设备 - Google Patents
一种前端元素的权限控制方法、装置、存储介质和设备 Download PDFInfo
- Publication number
- CN113486383B CN113486383B CN202110851657.9A CN202110851657A CN113486383B CN 113486383 B CN113486383 B CN 113486383B CN 202110851657 A CN202110851657 A CN 202110851657A CN 113486383 B CN113486383 B CN 113486383B
- Authority
- CN
- China
- Prior art keywords
- request
- resource
- parameter
- information
- end element
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000006870 function Effects 0.000 claims description 37
- 238000012795 verification Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 18
- 230000002085 persistent effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- 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/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种前端元素的权限控制方法、装置、存储介质和设备,在检测到用户使用角色登录系统的情况下,获取与角色对应的权限信息。在检测到用户对前端元素进行访问的情况下,获取针对前端元素预先设置的自定义标签,并通过自定义标签的属性,获得请求信息。在权限信息所示的各个请求路径中,包含请求信息所示的请求路径,且请求信息所示的请求参数,与权限信息所示的请求参数匹配的情况下,控制前端元素显示目标功能。在权限信息所示的各个请求路径中,不包含请求信息所示的请求路径的情况下,隐藏前端元素。本申请所示方法,控制了前端元素的显示,支持参数级权限验证,权限验证通过时,控制前端元素显示目标功能,极大提升了用户体验。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种前端元素的权限控制方法、装置、存储介质和设备。
背景技术
现有的系统通常都需要账号密码进行登录,每个账号还可以细分为多个角色,以便用户使用不同角色登录系统。为了保障用户与企业的利益,每个角色都设置有相应权限,因保证不同权限的角色所访问的内容不同。
目前,用户通过前端页面点击前端元素(例如按钮和链接)进行访问时,系统后台会验证用户当前所使用角色的权限,若用户当前使用的角色无权限,则直接提示用户没有权限访问,然而,直接提示用户没有权限访问,会使得用户体验大大下降。
发明内容
本申请提供了一种前端元素的权限控制方法、装置、存储介质和设备,目的在于提高用户体验。
为了实现上述目的,本申请提供了以下技术方案:
一种前端元素的权限控制方法,包括:
在检测到用户使用角色登录系统的情况下,获取与所述角色对应的权限信息;所述权限信息基于与所述角色对应的资源集合中每个资源的请求路径和请求参数所生成;
在检测到所述用户对前端元素进行访问的情况下,获取针对所述前端元素预先设置的自定义标签,并通过所述自定义标签的属性,获得请求信息;所述请求信息用于指示待请求资源的请求路径和请求参数;
判断所述权限信息所示的各个请求路径中,是否包含所述请求信息所示的请求路径;
在所述权限信息所示的各个请求路径中,包含所述请求信息所示的请求路径的情况下,判断所述请求信息所示的请求参数,与所述权限信息所示的请求参数是否匹配;
在所述请求信息所示的请求参数,与所述权限信息所示的请求参数匹配的情况下,控制所述前端元素显示目标功能;所述目标功能为所示请求信息所示的请求参数所实现的功能;
在所述请求信息所示的请求参数,与所述权限信息所示的请求参数不匹配的情况下,控制所述前端元素隐藏所述目标功能;
在所述权限信息所示的各个请求路径中,不包含所述请求信息所示的请求路径的情况下,隐藏所述前端元素。
可选的,所述权限信息基于与所述角色对应的资源集合中每个资源的请求路径和请求参数所生成,包括:
创建与所述角色对应的authMap对象;
获取与所述角色对应的资源集合;
针对所述资源集合中的每个资源,将所述资源解析为Map结构,得到与每个所述资源对应的键值对,并将与每个所述资源对应的键值对,写入到所述authMap对象,得到赋值后的authMap对象;
将所述赋值后的authMap对象,作为与所述角色对应的权限信息。
可选的,所述将所述资源解析为Map结构,包括:
针对所述资源的每个请求参数,创建与每个所述请求参数对应的实体;
将所述资源的权限标识和资源id,写入到各个所述实体中;
对所述资源进行拆分,得到多个URL,并记录所述URL与所述实体的对应关系;
针对每个所述URL,在检测到所述URL包含所述参数字串的情况下,将所述参数字串解析为Map结构,得到与所述请求参数对应的键值对,并将与所述请求参数对应的键值对,写入到与所述URL对应的实体中;
集合与每个所述URL对应的实体,构建所述资源的实体列表;
基于所述资源的请求路径和所述实体列表,构建与所述资源对应的键值对;
在检测到各个所述URL均不包含所述参数字串的情况下,基于所述请求路径和预设实体列表,构建与所述资源对应的键值对;所述预设实体列表不包含任何实体。
可选的,所述将所述参数字串解析为Map结构,包括:
创建与所述参数字串对应的paramMap对象;
对所述参数字串进行拆分,得到多个字符串;
针对每个所述字符串,对所述字符串进行拆分,得到与每个所述字符串对应的参数对;
将与每个所述字符串对应的参数对,写入到所述paramMap对象中,得到与所述请求参数对应的键值对。
可选的,所述通过所述自定义标签的属性,获得请求信息,包括:
对所述自定义标签的属性进行解析,得到所述待请求资源的请求路径和请求参数;
创建与所述待请求资源对应的reqMap对象;
将所述待请求资源解析为Map结构,得到与所述待请求资源对应的键值对,并将与所述待请求资源对应的键值对,写入到所述reqMap对象中,得到赋值后的reqMap对象;
将所述赋值后的reqMap对象,作为请求信息。
可选的,所述将所述待请求资源解析为Map结构,包括:
针对所述待请求资源的每个请求参数,创建与所述待请求资源的每个请求参数对应的实体;
对所述待请求资源进行解析,得到URL,并记录所述URL与所述实体的对应关系;
在检测到所述URL包含所述参数字串的情况下,将所述参数字串解析为Map结构,得到与所述请求参数对应的键值对,并将与所述请求参数对应的键值对,写入到与所述URL对应的实体中;
集合与所述URL对应的实体,构建所述待请求资源的实体列表;
基于所述待请求资源的请求路径和所述实体列表,构建与所述待请求资源对应的键值对。
可选的,所述判断所述请求信息所示的请求参数,与所述权限信息所示的请求参数是否匹配,包括:
解析所述权限信息,获得目标资源所包含的实体;所述目标资源为请求路径与所述请求信息所示请求路径相同的资源;
解析所述目标资源所包含的实体,得到所述目标资源的请求参数,并生成与所述目标资源的请求参数的值对应的正则表达式;
解析所述请求信息所示的请求参数,获得目标参数值;
判断所述目标参数值是否满足所述正则表达式;
若所述目标参数值满足所述正则表达式,确定所述请求信息所示的请求参数,与所述权限信息所示的请求参数匹配;
若所述目标参数值不满足所述正则表达式,确定所述请求信息所示的请求参数,与所述权限信息所示的请求参数不匹配。
一种前端元素的权限控制装置,包括:
第一获取单元,用于在检测到用户使用角色登录系统的情况下,获取与所述角色对应的权限信息;所述权限信息基于与所述角色对应的资源集合中每个资源的请求路径和请求参数所生成;
第二获取单元,用于在检测到所述用户对前端元素进行访问的情况下,获取针对所述前端元素预先设置的自定义标签,并通过所述自定义标签的属性,获得请求信息;所述请求信息用于指示待请求资源的请求路径和请求参数;
第一判断单元,用于判断所述权限信息所示的各个请求路径中,是否包含所述请求信息所示的请求路径;
第二判断单元,用于在所述权限信息所示的各个请求路径中,包含所述请求信息所示的请求路径的情况下,判断所述请求信息所示的请求参数,与所述权限信息所示的请求参数是否匹配;
第一控制单元,用于在所述请求信息所示的请求参数,与所述权限信息所示的请求参数匹配的情况下,控制所述前端元素显示目标功能;所述目标功能为所示请求信息所示的请求参数所实现的功能;
第二控制单元,用于在所述请求信息所示的请求参数,与所述权限信息所示的请求参数不匹配的情况下,控制所述前端元素隐藏所述目标功能;
隐藏单元,用于在所述权限信息所示的各个请求路径中,不包含所述请求信息所示的请求路径的情况下,隐藏所述前端元素。
一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序所述的前端元素的权限控制方法。
一种前端元素的权限控制设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行所述的前端元素的权限控制方法。
本申请提供的技术方案,在检测到用户使用角色登录系统的情况下,获取与角色对应的权限信息。在检测到用户对前端元素进行访问的情况下,获取针对前端元素预先设置的自定义标签,并通过自定义标签的属性,获得请求信息。判断权限信息所示的各个请求路径中,是否包含请求信息所示的请求路径。在权限信息所示的各个请求路径中,包含请求信息所示的请求路径的情况下,判断请求信息所示的请求参数,与权限信息所示的请求参数是否匹配。在请求信息所示的请求参数,与权限信息所示的请求参数匹配的情况下,控制前端元素显示目标功能。在请求信息所示的请求参数,与权限信息所示的请求参数不匹配的情况下,控制前端元素隐藏目标功能。在权限信息所示的各个请求路径中,不包含请求信息所示的请求路径的情况下,隐藏前端元素。本申请所示方法,控制了前端元素的显示,支持自定义标签属性配置资源信息,支持参数级权限验证(即将请求信息的请求路径和请求参数,与权限信息所示的请求路径和请求参数进行比较),权限验证通过时,控制前端元素显示目标功能,极大提升了用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种前端元素的权限控制方法的示意图;
图2为本申请实施例提供的另一种前端元素的权限控制方法的示意图;
图3为本申请实施例提供的另一种前端元素的权限控制方法的示意图;
图4为本申请实施例提供的另一种前端元素的权限控制方法的示意图;
图5为本申请实施例提供的另一种前端元素的权限控制方法的示意图;
图6为本申请实施例提供的另一种前端元素的权限控制方法的示意图;
图7为本申请实施例提供的另一种前端元素的权限控制方法的示意图;
图8为本申请实施例提供的另一种前端元素的权限控制方法的示意图;
图9为本申请实施例提供的一种前端元素的权限控制装置的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请实施例提供的一种前端元素的权限控制方法的示意图,包括如下步骤:
S101:预先配置用户所拥有的角色,以及与每个角色对应的资源集合,并将角色和资源集合的对应关系,存储至持久化介质中。
其中,用户所拥有的角色包括至少一个,资源集合包括一个或多个资源。所谓的资源,即提供业务服务的统一资源定位符(Uniform Resource Locator,URL),资源的数据结构,如表1所示。
表1
字段名 | 含义 |
resourceId | 资源id |
resourceUrl | 资源URL |
resourceName | 资源名称 |
resourceType | 资源类型 |
在表1中,资源id代表资源的唯一标识,资源URL即代表URL,资源名称代表展示给用户浏览的功能名称,资源类型包括但不限于为按钮、链接和菜单。
所谓的URL,即网络地址,其格式为http://host[:port]/[path?parameters]。其中,http表示通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或IP地址(以点分十进制格式表示);port用于指定一个端口号,即拥有被请求资源的服务器主机监听该端口的TCP连接;path?parameters指定URL的请求路径与请求参数,同一请求路径下,可搭配多个请求参数,不同的请求参数用于实现不同的功能。
具体的,假设URL如下所示:
http://www.hello.com:8888/search/qryAction.do?para1=value1¶2=value2,其中,URL的请求路径为search/qryAction.do,search为虚拟路径上下文根,可忽略掉此虚拟路径;请求参数为para1=value1¶2=value2,请求参数可以为空。特别地,可用符号“||”将多个URL拼接为一个资源URL。
需要强调的是,角色与资源集合的对应关系,基于表2示出的数据结构所实现。
表2
字段名 | 含义 |
roleId | 角色id |
resourceId | 资源id |
authFlag | 权限标识 |
在表2中,角色id代表角色的唯一标示,权限标识代表角色id所示的角色是否具有访问资源id所示资源的权限,权限标识取值为true,则代表角色id所示的角色具有访问资源id所示资源的权限,权限标识取值为false,则代表角色id所示的角色不具有访问资源id所示资源的权限。
一般来讲,持久化介质包括但不限于为数据库。
S102:预先为前端元素设置自定义标签,并在自定义标签的属性中配置资源的请求路径和请求参数。
其中,为前端元素设置自定义标签的具体实现过程,为本领域技术人员所熟悉的公知常识,具体的,为前端元素设置自定义标签的逻辑为:<p:buttonaction="cupBatChkTrans.do?method=queryHisList"id="submitBtn"class="button1_2b"value="查询"/>,前端元素为按钮(button),在自定义标签的属性中所配置的资源的请求路径为cupBatChkTrans.do?,资源的请求参数为method=queryHisList。
S103:在检测到用户首次使用角色登录系统的情况下,从持久化介质中获取与角色对应的资源集合。
S104:基于与角色对应的资源集合中每个资源的请求路径和请求参数,生成与角色对应、且数据结构为Map结构的权限信息,并将权限信息与角色的对应关系存储至时域中。
其中,Map结构如表3所示,其本质就是键值对(即key和value),键值对中的key用于指示资源的请求路径(具体为表3中所示的action1、action2和action3),value用于指示资源的实体列表(具体为表3中所示的List<ParamBean>),实体列表包括多个实体(具体为表3中所示的ParamBean),每个实体均包括权限标识(具体为表3中所示的authFlag)、资源id(具体为表3中所示的resourceId)、资源类型(具体为表3中所示的resourceType)和资源的请求参数(具体为表3中所示的paramMap)。
表3
在本申请实施例中,请求参数也依据键值对的形式进行存储,与请求参数对应的键值对中的key用于指示请求参数的名称,value用于指示请求参数的值,如表3所示,请求参数的名称为paramMap1,与paramMap1对应的值为value1,请求参数的名称为paramMap2,与paramMap2对应的值为value2。
需要说明的是,基于与角色对应的资源集合中每个资源的请求路径和请求参数,生成与角色对应、且数据结构为Map结构的权限信息的具体实现过程,可以参见图2所示出的步骤、以及步骤的解释说明。
由于将权限信息与角色的对应关系存储至时域中,因此,在检测到用户第n(n为大于1的正整数)次使用角色登录系统的情况下,则可以直接从时域中获取与角色对应的权限信息。
S105:在检测到用户对前端元素进行访问的情况下,对前端元素的自定义标签的属性进行解析,得到待请求资源的请求路径和请求参数,并调用自定义标签的标签处理器类,执行预设步骤。
其中,预设步骤如下述S106-S111所示,包括:
S106:基于待请求资源的请求路径和请求参数,生成数据结构为Map结构的请求信息。
其中,基于待请求资源的请求路径和请求参数,生成数据结构为Map结构的请求信息的具体实现过程,可以参见图5所示的步骤、以及步骤的解释说明。
S107:判断权限信息所示的各个请求路径中,是否包含请求信息所示的请求路径。
若权限信息所示的各个请求路径中,包含请求信息所示的请求路径,则执行S108,否则执行S111。
S108:判断请求信息所示的请求参数,与权限信息所示的请求参数是否匹配。
若请求信息所示的请求参数,与权限信息所示的请求参数匹配,则执行S109,否则执行S110。
其中,判断请求信息所示的请求参数,与权限信息所示的请求参数是否匹配的具体实现过程,可以参见图7所示的步骤、以及步骤的解释说明。
S109:控制前端元素显示目标功能。
其中,目标功能为请求信息所示的请求参数所实现的功能。
S110:控制前端元素隐藏目标功能。
S111:隐藏前端元素。
综上所述,本实施例所示方法,控制了前端元素的显示,支持自定义标签属性配置资源信息,支持参数级权限验证(即将请求信息的请求路径和请求参数,与权限信息所示的请求路径和请求参数进行比较),权限验证通过时,控制前端元素显示目标功能,极大提升了用户体验。
如图2所示,为本申请实施例提供的另一种前端元素的权限控制方法的示意图,包括如下步骤:
S201:创建与角色对应的authMap对象。
S202:获取与角色对应的资源集合。
S203:针对资源集合中的每个资源,将资源解析为Map结构,得到与每个资源对应的键值对,并将与每个资源对应的键值对,写入到authMap对象,得到赋值后的authMap对象。
其中,将资源解析为Map结构的具体实现过程,可以参见图3所示的步骤、以及步骤的解释说明。
需要说明的是,与资源对应的键值对中的key用于指示资源的请求路径,value用于指示与资源对应的实体列表。
S204:将赋值后的authMap对象,作为与角色对应的权限信息。
综上所述,利用本实施例所示方法,能够基于与角色对应的资源集合中每个资源的请求路径和请求参数,生成与角色对应、且数据结构为Map结构的权限信息。
如图3所示,为本申请实施例提供的另一种前端元素的权限控制方法的示意图,包括如下步骤:
S301:针对资源的每个请求参数,创建与每个请求参数对应的实体。
S302:将资源的权限标识和资源id,写入到各个实体中。
S303:对资源进行拆分,得到多个URL,并记录URL与实体的对应关系。
S304:针对每个URL,在检测到URL包含参数字串的情况下,将参数字串解析为Map结构,得到与请求参数对应的键值对,并将与请求参数对应的键值对,写入到与URL对应的实体中。
其中,由于资源URL基于多个URL以及符号“||”拼接生成,故可以利用符号“||”作为拆分参照,对资源URL进行拆分,得到多个URL。
以http://www.hello.com/search/qryAction.do?para1=value1¶2=value2充当URL为例,URL中所示的符号“?”之后的字符,均代表请求参数,也就是说,只要检测到URL所示的字符串,在符号“?”之后还存在其它字符,则代表URL包含参数字串。
需要说明的是,将参数字串解析为Map结构的具体实现过程,可以参见图4所示的步骤、以及步骤的解释说明。
S305:集合与每个URL对应的实体,构建资源的实体列表。
S306:基于资源的请求路径和实体列表,构建与资源对应的键值对。
其中,与资源对应的键值对中的key用于指示资源的请求路径,value用于指示与资源对应的实体列表。
S307:在检测到各个URL均不包含参数字串的情况下,基于请求路径和预设实体列表,构建与资源对应的键值对。
其中,预设实体列表不包含任何实体。
综上所述,利用本实施例所述方法,能够有效将资源解析为Map结构。
如图4所示,为本申请实施例提供的另一种前端元素的权限控制方法的示意图,包括如下步骤:
S401:创建与参数字串对应的paramMap对象。
S402:对参数字串进行拆分,得到多个字符串。
其中,由于参数字串基于多个字符串以及符号“&”拼接生成,故可以利用符号“&”作为拆分参照,对参数字串进行拆分,得到多个字符串。
具体的,假设参数字串为para1=value1¶2=value2,则para1=value1为其中一个字符串,para2=value2为另一个字符串。
S403:针对每个字符串,对字符串进行拆分,得到与每个字符串对应的参数对。
其中,由于字符串用于指示一对参数,并通过符号“=”区分两个参数的字符,故可以利用符号“=”作为拆分参照,对字符串进行拆分,得到参数对。
具体的,假设字符串为para1=value1,则para1为其中一个参数,value1为另一个参数。
S404:将与每个字符串对应的参数对,写入到paramMap对象中,得到与所述请求参数对应的键值对。
综上所述,利用本实施例所述方法,能够有效将参数字串解析为Map结构。
如图5所示,为本申请实施例提供的另一种前端元素的权限控制方法的示意图,包括如下步骤:
S501:创建与待请求资源对应的reqMap对象。
S502:将待请求资源解析为Map结构,得到与待请求资源对应的键值对,并将与待请求资源对应的键值对,写入到reqMap对象,得到赋值后的reqMap对象。
其中,与待请求资源对应的键值对中的key用于指示待请求资源的请求路径,value用于指示待请求资源的实体列表,待请求资源的实体列表包括多个实体,每个实体均用于指示一个请求参数。
需要说明的是,将待请求资源解析为Map结构的具体实现过程,可以参见图6所示的步骤、以及步骤的解释说明。
S503:将赋值后的reqMap对象,作为请求信息。
综上所述,利用本实施例所示方法,能够有效基于待请求资源的请求路径和请求参数,生成数据结构为Map结构的请求信息。
如图6所示,为本申请实施例提供的另一种前端元素的权限控制方法的示意图,包括如下步骤:
S601:针对待请求资源的每个请求参数,创建与待请求资源的每个请求参数对应的实体。
S602:对待请求资源进行解析,得到URL,并记录URL与实体的对应关系。
S603:在检测到URL包含参数字串的情况下,将参数字串解析为Map结构,得到与待请求资源的请求参数对应的键值对,并将与待请求资源的请求参数对应的键值对,写入到与URL对应的实体中。
其中,将参数字串解析为Map结构的具体实现过程包括:
1、创建与待请求资源的请求参数对应的paramMap对象,并对参数字串进行拆分,得到多个字符串。
2、针对每个字符串,对字符串进行拆分,得到与每个字符串对应的参数对。
3、与每个字符串对应的参数对,写入到与待请求资源的请求参数对应的paramMap对象中,得到与待请求资源的请求参数对应的键值对。
S604:集合与URL对应的实体,构建待请求资源的实体列表。
S605:基于待请求资源的请求路径和实体列表,构建与待请求资源对应的键值对。
综上所述,利用本实施例所示方法,能够有效将待请求资源解析为Map结构。
如图7所示,为本申请实施例提供的另一种前端元素的权限控制方法的示意图,包括如下步骤:
S701:解析权限信息,获得目标资源所包含的实体。
其中,目标资源为请求路径与请求信息所示请求路径相同的资源。
S702:解析目标资源所包含的实体,得到目标资源的请求参数,并生成与目标资源的请求参数的值对应的正则表达式。
S703:解析请求信息所示的请求参数,获得目标参数值。
S704:判断目标参数值是否满足正则表达式。
若目标参数值满足正则表达式,则执行S705,否则执行S706。
S705:确定请求信息所示的请求参数,与权限信息所示的请求参数匹配。
S706:确定请求信息所示的请求参数,与权限信息所示的请求参数不匹配。
综上所述,利用本实施例所示方法,能够有效判断请求信息所示的请求参数,与权限信息所示的请求参数是否匹配。
需要说明的是,上述各个实施例,均为本申请所述前端元素的权限控制方法的一种可选的实现方式,可以概括为图8所示的方法。
如图8所示,为本申请实施例提供的另一种前端元素的权限控制方法,包括如下步骤:
S801:在检测到用户使用角色登录系统的情况下,获取与角色对应的权限信息。
其中,权限信息基于与角色对应的资源集合中每个资源的请求路径和请求参数所生成。
S802:在检测到用户对前端元素进行访问的情况下,获取针对前端元素预先设置的自定义标签,并通过自定义标签的属性,获得请求信息。
其中,请求信息用于指示待请求资源的请求路径和请求参数。
S803:判断权限信息所示的各个请求路径中,是否包含请求信息所示的请求路径。
若权限信息所示的各个请求路径中,包含请求信息所示的请求路径,则执行S804,否则执行S807。
S804:判断请求信息所示的请求参数,与权限信息所示的请求参数是否匹配。
若请求信息所示的请求参数,与权限信息所示的请求参数匹配,则执行S805,否则执行S806。
S805:控制前端元素显示目标功能。
其中,目标功能为所示请求信息所示的请求参数所实现的功能。
S806:控制前端元素隐藏目标功能:。
S807:隐藏前端元素。
综上所述,本实施例所示方法,控制了前端元素的显示,支持自定义标签属性配置资源信息,支持参数级权限验证(即将请求信息的请求路径和请求参数,与权限信息所示的请求路径和请求参数进行比较),权限验证通过时,控制前端元素显示目标功能,极大提升了用户体验。
与上述本申请实施例提供的前端元素的权限控制方法相对应,本申请实施例还提供了一种前端元素的权限控制装置。
如图9所示,为本申请实施例提供的一种前端元素的权限控制装置的架构示意图,包括:
第一获取单元100,用于在检测到用户使用角色登录系统的情况下,获取与角色对应的权限信息;权限信息基于与角色对应的资源集合中每个资源的请求路径和请求参数所生成。
其中,第一获取单元100用于基于与角色对应的资源集合中每个资源的请求路径和请求参数生成权限信息的过程,包括:创建与角色对应的authMap对象;获取与角色对应的资源集合;针对资源集合中的每个资源,将资源解析为Map结构,得到与每个资源对应的键值对,并将与每个资源对应的键值对,写入到authMap对象,得到赋值后的authMap对象;将赋值后的authMap对象,作为与角色对应的权限信息。
第一获取单元100用于将资源解析为Map结构的过程,包括:针对资源的每个请求参数,创建与每个请求参数对应的实体;将资源的权限标识和资源id,写入到各个实体中;对资源进行拆分,得到多个URL,并记录URL与实体的对应关系;针对每个URL,在检测到URL包含参数字串的情况下,将参数字串解析为Map结构,得到与请求参数对应的键值对,并将与请求参数对应的键值对,写入到与URL对应的实体中;集合与每个URL对应的实体,构建资源的实体列表;基于资源的请求路径和实体列表,构建与资源对应的键值对;在检测到各个URL均不包含参数字串的情况下,基于请求路径和预设实体列表,构建与资源对应的键值对;预设实体列表不包含任何实体。
第一获取单元100用于将参数字串解析为Map结构的过程,包括:创建与参数字串对应的paramMap对象;对参数字串进行拆分,得到多个字符串;针对每个字符串,对字符串进行拆分,得到与每个字符串对应的参数对;将与每个字符串对应的参数对,写入到paramMap对象中,得到与请求参数对应的键值对。
第二获取单元200,用于在检测到用户对前端元素进行访问的情况下,获取针对前端元素预先设置的自定义标签,并通过自定义标签的属性,获得请求信息;请求信息用于指示待请求资源的请求路径和请求参数。
其中,第二获取单元200用于通过自定义标签的属性,获得请求信息的过程,包括:对自定义标签的属性进行解析,得到待请求资源的请求路径和请求参数;创建与待请求资源对应的reqMap对象;将待请求资源解析为Map结构,得到与待请求资源对应的键值对,并将与待请求资源对应的键值对,写入到reqMap对象中,得到赋值后的reqMap对象;将赋值后的reqMap对象,作为请求信息。
第二获取单元200用于将待请求资源解析为Map结构的过程,包括:针对待请求资源的每个请求参数,创建与待请求资源的每个请求参数对应的实体;对待请求资源进行解析,得到URL,并记录URL与实体的对应关系;在检测到URL包含参数字串的情况下,将参数字串解析为Map结构,得到与请求参数对应的键值对,并将与请求参数对应的键值对,写入到与URL对应的实体中;集合与URL对应的实体,构建待请求资源的实体列表;基于待请求资源的请求路径和实体列表,构建与待请求资源对应的键值对。
第一判断单元300,用于判断权限信息所示的各个请求路径中,是否包含请求信息所示的请求路径。
第二判断单元400,用于在权限信息所示的各个请求路径中,包含请求信息所示的请求路径的情况下,判断请求信息所示的请求参数,与权限信息所示的请求参数是否匹配。
其中,第二判断单元400具体用于:解析权限信息,获得目标资源所包含的实体;目标资源为请求路径与请求信息所示请求路径相同的资源;解析目标资源所包含的实体,得到目标资源的请求参数,并生成与目标资源的请求参数的值对应的正则表达式;解析请求信息所示的请求参数,获得目标参数值;判断目标参数值是否满足正则表达式;若目标参数值满足正则表达式,确定请求信息所示的请求参数,与权限信息所示的请求参数匹配;若目标参数值不满足正则表达式,确定请求信息所示的请求参数,与权限信息所示的请求参数不匹配。
第一控制单元500,用于在请求信息所示的请求参数,与权限信息所示的请求参数匹配的情况下,控制前端元素显示目标功能;目标功能为所示请求信息所示的请求参数所实现的功能。
第二控制单元600,用于在请求信息所示的请求参数,与权限信息所示的请求参数不匹配的情况下,控制前端元素隐藏目标功能。
隐藏单元700,用于在权限信息所示的各个请求路径中,不包含请求信息所示的请求路径的情况下,隐藏前端元素。
综上所述,本实施例所示方法,控制了前端元素的显示,支持自定义标签属性配置资源信息,支持参数级权限验证(即将请求信息的请求路径和请求参数,与权限信息所示的请求路径和请求参数进行比较),权限验证通过时,控制前端元素显示目标功能,极大提升了用户体验。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的前端元素的权限控制方法。
本申请还提供了一种前端元素的权限控制设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的前端元素的权限控制方法。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种前端元素的权限控制方法,其特征在于,包括:
在检测到用户使用角色登录系统的情况下,获取与所述角色对应的权限信息;所述权限信息基于与所述角色对应的资源集合中每个资源的请求路径和请求参数所生成;
在检测到所述用户对前端元素进行访问的情况下,获取针对所述前端元素预先设置的自定义标签,并通过所述自定义标签的属性,获得请求信息;所述请求信息用于指示待请求资源的请求路径和请求参数;
判断所述权限信息所示的各个请求路径中,是否包含所述请求信息所示的请求路径;
在所述权限信息所示的各个请求路径中,包含所述请求信息所示的请求路径的情况下,判断所述请求信息所示的请求参数,与所述权限信息所示的请求参数是否匹配;
在所述请求信息所示的请求参数,与所述权限信息所示的请求参数匹配的情况下,控制所述前端元素显示目标功能;所述目标功能为所示请求信息所示的请求参数所实现的功能;
在所述请求信息所示的请求参数,与所述权限信息所示的请求参数不匹配的情况下,控制所述前端元素隐藏所述目标功能;
在所述权限信息所示的各个请求路径中,不包含所述请求信息所示的请求路径的情况下,隐藏所述前端元素。
2.根据权利要求1所述的方法,其特征在于,所述权限信息基于与所述角色对应的资源集合中每个资源的请求路径和请求参数所生成,包括:
创建与所述角色对应的authMap对象;
获取与所述角色对应的资源集合;
针对所述资源集合中的每个资源,将所述资源解析为Map结构,得到与每个所述资源对应的键值对,并将与每个所述资源对应的键值对,写入到所述authMap对象,得到赋值后的authMap对象;
将所述赋值后的authMap对象,作为与所述角色对应的权限信息。
3.根据权利要求2所述的方法,其特征在于,所述将所述资源解析为Map结构,包括:
针对所述资源的每个请求参数,创建与每个所述请求参数对应的实体;
将所述资源的权限标识和资源id,写入到各个所述实体中;
对所述资源进行拆分,得到多个URL,并记录所述URL与所述实体的对应关系;
针对每个所述URL,在检测到所述URL包含所述参数字串的情况下,将所述参数字串解析为Map结构,得到与所述请求参数对应的键值对,并将与所述请求参数对应的键值对,写入到与所述URL对应的实体中;
集合与每个所述URL对应的实体,构建所述资源的实体列表;
基于所述资源的请求路径和所述实体列表,构建与所述资源对应的键值对;
在检测到各个所述URL均不包含所述参数字串的情况下,基于所述请求路径和预设实体列表,构建与所述资源对应的键值对;所述预设实体列表不包含任何实体。
4.根据权利要求3所述的方法,其特征在于,所述将所述参数字串解析为Map结构,包括:
创建与所述参数字串对应的paramMap对象;
对所述参数字串进行拆分,得到多个字符串;
针对每个所述字符串,对所述字符串进行拆分,得到与每个所述字符串对应的参数对;
将与每个所述字符串对应的参数对,写入到所述paramMap对象中,得到与所述请求参数对应的键值对。
5.根据权利要求1所述的方法,其特征在于,所述通过所述自定义标签的属性,获得请求信息,包括:
对所述自定义标签的属性进行解析,得到所述待请求资源的请求路径和请求参数;
创建与所述待请求资源对应的reqMap对象;
将所述待请求资源解析为Map结构,得到与所述待请求资源对应的键值对,并将与所述待请求资源对应的键值对,写入到所述reqMap对象中,得到赋值后的reqMap对象;
将所述赋值后的reqMap对象,作为请求信息。
6.根据权利要求5所述的方法,其特征在于,所述将所述待请求资源解析为Map结构,包括:
针对所述待请求资源的每个请求参数,创建与所述待请求资源的每个请求参数对应的实体;
对所述待请求资源进行解析,得到URL,并记录所述URL与所述实体的对应关系;
在检测到所述URL包含所述参数字串的情况下,将所述参数字串解析为Map结构,得到与所述请求参数对应的键值对,并将与所述请求参数对应的键值对,写入到与所述URL对应的实体中;
集合与所述URL对应的实体,构建所述待请求资源的实体列表;
基于所述待请求资源的请求路径和所述实体列表,构建与所述待请求资源对应的键值对。
7.根据权利要求1所述的方法,其特征在于,所述判断所述请求信息所示的请求参数,与所述权限信息所示的请求参数是否匹配,包括:
解析所述权限信息,获得目标资源所包含的实体;所述目标资源为请求路径与所述请求信息所示请求路径相同的资源;
解析所述目标资源所包含的实体,得到所述目标资源的请求参数,并生成与所述目标资源的请求参数的值对应的正则表达式;
解析所述请求信息所示的请求参数,获得目标参数值;
判断所述目标参数值是否满足所述正则表达式;
若所述目标参数值满足所述正则表达式,确定所述请求信息所示的请求参数,与所述权限信息所示的请求参数匹配;
若所述目标参数值不满足所述正则表达式,确定所述请求信息所示的请求参数,与所述权限信息所示的请求参数不匹配。
8.一种前端元素的权限控制装置,其特征在于,包括:
第一获取单元,用于在检测到用户使用角色登录系统的情况下,获取与所述角色对应的权限信息;所述权限信息基于与所述角色对应的资源集合中每个资源的请求路径和请求参数所生成;
第二获取单元,用于在检测到所述用户对前端元素进行访问的情况下,获取针对所述前端元素预先设置的自定义标签,并通过所述自定义标签的属性,获得请求信息;所述请求信息用于指示待请求资源的请求路径和请求参数;
第一判断单元,用于判断所述权限信息所示的各个请求路径中,是否包含所述请求信息所示的请求路径;
第二判断单元,用于在所述权限信息所示的各个请求路径中,包含所述请求信息所示的请求路径的情况下,判断所述请求信息所示的请求参数,与所述权限信息所示的请求参数是否匹配;
第一控制单元,用于在所述请求信息所示的请求参数,与所述权限信息所示的请求参数匹配的情况下,控制所述前端元素显示目标功能;所述目标功能为所示请求信息所示的请求参数所实现的功能;
第二控制单元,用于在所述请求信息所示的请求参数,与所述权限信息所示的请求参数不匹配的情况下,控制所述前端元素隐藏所述目标功能;
隐藏单元,用于在所述权限信息所示的各个请求路径中,不包含所述请求信息所示的请求路径的情况下,隐藏所述前端元素。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1-7任一所述的前端元素的权限控制方法。
10.一种前端元素的权限控制设备,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-7任一所述的前端元素的权限控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110851657.9A CN113486383B (zh) | 2021-07-27 | 2021-07-27 | 一种前端元素的权限控制方法、装置、存储介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110851657.9A CN113486383B (zh) | 2021-07-27 | 2021-07-27 | 一种前端元素的权限控制方法、装置、存储介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486383A CN113486383A (zh) | 2021-10-08 |
CN113486383B true CN113486383B (zh) | 2024-02-20 |
Family
ID=77944166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110851657.9A Active CN113486383B (zh) | 2021-07-27 | 2021-07-27 | 一种前端元素的权限控制方法、装置、存储介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486383B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833369A (zh) * | 2018-05-28 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种访问文件系统的方法、装置及设备 |
-
2021
- 2021-07-27 CN CN202110851657.9A patent/CN113486383B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833369A (zh) * | 2018-05-28 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种访问文件系统的方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113486383A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6530786B2 (ja) | Webページの悪意のある要素を検出するシステム及び方法 | |
CN103744802B (zh) | Sql注入攻击的识别方法及装置 | |
US10740411B2 (en) | Determining repeat website users via browser uniqueness tracking | |
KR101422859B1 (ko) | 문서의 오디언스-적정 버전을 제공하는 방법, 문서 서버, 및 컴퓨터 판독 가능 매체 | |
US9230030B2 (en) | Method and system for mining websites | |
US8751184B2 (en) | Transaction based workload modeling for effective performance test strategies | |
CN108667840B (zh) | 注入漏洞检测方法及装置 | |
WO2017167208A1 (zh) | 识别恶意网站的方法、装置及计算机存储介质 | |
US11140153B2 (en) | Techniques for identification of location of relevant fields in a credential-seeking web page | |
CN105868290B (zh) | 一种展现搜索结果的方法及装置 | |
KR20200013040A (ko) | 보안 정책 분석기 서비스 및 만족성 엔진 | |
US9928099B1 (en) | Fingerprint-based capacity management of physical hosts | |
CN109194671A (zh) | 一种异常访问行为的识别方法及服务器 | |
Stajano et al. | Password-manager friendly (PMF): Semantic annotations to improve the effectiveness of password managers | |
KR20190040343A (ko) | 검증 방법 및 디바이스 | |
US10805377B2 (en) | Client device tracking | |
CN109936575B (zh) | 页面访问方法、装置、存储介质及处理器 | |
CN109657472B (zh) | Sql注入漏洞检测方法、装置、设备及可读存储介质 | |
CN106020923A (zh) | SELinux策略的编译方法及系统 | |
US10235450B2 (en) | Semantic layer for processing machine data | |
CN113486383B (zh) | 一种前端元素的权限控制方法、装置、存储介质和设备 | |
EP3306511B1 (en) | System and methods of detecting malicious elements of web pages | |
JP6680472B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
RU2740856C1 (ru) | Способ и система для идентификации кластеров аффилированных веб-сайтов | |
CN112214182B (zh) | 一种打印机识别的方法、装置、电子设备及存储介质 |
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 |