CN111625782A - 源码的访问权限控制方法、装置、计算机设备和存储介质 - Google Patents
源码的访问权限控制方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111625782A CN111625782A CN202010448215.5A CN202010448215A CN111625782A CN 111625782 A CN111625782 A CN 111625782A CN 202010448215 A CN202010448215 A CN 202010448215A CN 111625782 A CN111625782 A CN 111625782A
- Authority
- CN
- China
- Prior art keywords
- source code
- authority
- user
- access
- identification information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 198
- 238000004590 computer program Methods 0.000 claims description 12
- 238000000605 extraction Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design 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
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000004260 weight control Methods 0.000 description 1
Images
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种源码的访问权限控制方法、装置、计算机设备和计算机可读存储介质,其中,该方法包括:拦截用户对目标源码的访问请求;在目标源码具有预设注解的情况下,提取目标源码的权限标识信息;根据权限标识信息和用户标识信息查询预设权限控制集,并根据查询结果判断用户是否具有访问目标源码的访问权限;在判断到用户具有访问目标源码的访问权限的情况下,允许用户访问目标源码。通过本申请,解决了相关技术中源码访问权限控制不合理的问题,细微化了源码访问权限控制的颗粒度。
Description
技术领域
本申请涉及源码控制领域,特别是涉及一种源码的访问权限控制方法、源码的访问权限控制装置、计算机设备和计算机可读存储介质。
背景技术
目前,由诸如软件开发商、开发人员等项目提供者所提供的项目中,经编译过后的可执行包在源码访问权限控制方面存在着缺陷。
在一些相关技术的项目中,没有进行源码访问权限控制。由于可执行包内包含项目所涉及的产品功能,在用户可以任意访问源码的情况下,项目中产品的业务功能将会泄露,这将给项目提供者带来损失。
在其他一些相关技术的项目中,尽管对项目中的源码进行了访问权限控制,但是其访问权限控制不合理,无法满足用户的实际访问需求。比如,有些公司只进行了项目访问权限控制,将整个项目的可执行包提供出去,该项目涵盖了整个产品的功能,若没有针对用户所需的功能对项目进行分功能打包,导致提供出去的可执行包的访问权限颗粒度过大,在用户只想要部分源码访问权限的情况下,由于访问权限颗粒度问题,只能开启项目权限,而一旦开启项目权限,项目中其他部分源码所对应的业务功能都将泄漏,造成业务功能的泄露风险,引发安全问题。
目前,针对相关技术中源码访问权限控制不合理的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种源码的访问权限控制方法、源码的访问权限控制装置、计算机设备和计算机可读存储介质,以至少解决相关技术中源码访问权限控制不合理的问题。
第一方面,本申请实施例提供了一种源码的访问权限控制方法,包括:
拦截用户对目标源码的访问请求;
在所述目标源码具有预设注解的情况下,提取所述目标源码的权限标识信息;
根据所述权限标识信息和所述用户标识信息查询预设权限控制集,并根据查询结果判断所述用户是否具有访问所述目标源码的访问权限;
在判断到所述用户具有访问所述目标源码的访问权限的情况下,允许所述用户访问所述目标源码。
在其中一些实施例中,在所述目标源码具有预设注解的情况下,提取所述目标源码的权限标识信息包括:
判断所述目标源码是否为类或方法的源码;在判断到所述目标源码是类或方法的源码的情况下,根据所述目标源码的预设注解,提取所述目标源码的权限标识信息;
在判断到所述目标源码不是类也不是方法的源码的情况下,允许所述用户访问所述目标源码。
在其中一些实施例中,根据所述目标源码的预设注解,提取所述目标源码的权限标识信息包括:
判断所述目标源码是否具有所述预设注解;
在判断到所述目标源码具有所述预设注解的情况下,根据所述目标源码的预设注解,提取所述目标源码的权限标识信息;
在判断到所述目标源码不具有所述预设注解的情况下,允许所述用户访问所述目标源码。
在其中一些实施例中,在判断到所述目标源码不具有所述预设注解的情况下,允许所述用户访问所述目标源码包括:
在所述目标源码为类的源码的情况下,允许所述用户访问属于所述类的方法的源码中不具有所述预设注解的方法的源码;以及
根据属于所述类的方法的源码的预设注解,提取所述方法的源码的权限标识信息,根据所述方法的源码的权限标识信息和所述用户标识信息查询所述预设权限控制集,并根据查询结果判断所述用户是否具有访问所述方法的源码的访问权限,在判断到所述用户具有访问所述方法的源码的访问权限的情况下,允许所述用户访问所述方法的源码。
在其中一些实施例中,在判断到所述目标源码不具有所述预设注解的情况下,允许所述用户访问所述目标源码包括:
在所述目标源码为方法的源码的情况下,判断所述方法所属的类是否具有所述预设注解;
在判断到所述方法所属的类不具有所述预设注解的情况下,允许所述用户访问所述目标源码;
在判断到所述方法所属的类具有所述预设注解的情况下,根据所述方法所属的类的源码的预设注解,提取所述方法所属的类的源码的权限标识信息,根据所述方法所属的类的源码的权限标识信息和所述用户标识信息查询所述预设权限控制集,并根据查询结果判断所述用户是否具有访问所述方法所属的类的源码的访问权限,在判断到所述用户具有访问所述方法所属的类的源码的访问权限的情况下,允许所述用户访问所述目标源码。
在其中一些实施例中,所述方法还包括:
在源码库中扫描具有所述预设注解的类和方法的源码;
在扫描到具有所述预设注解的方法的源码的情况下,提取具有所述预设注解的方法的源码的权限标识信息,并将该权限标识信息写入所述预设权限控制集;
在所描到具有所述预设注解的类的源码的情况下,提取具有所述预设注解的类的源码以及属于该类的所有方法的源码的权限标识信息,并将该权限标识信息写入所述预设权限控制集。
在其中一些实施例中,在源码库中扫描具有所述预设注解的类和方法的源码之前,所述方法还包括:
获取所述源码库中对应于类的源码的权限名称,根据所述类的源码的权限名称和所述类的权限标识信息,生成所述类的源码的预设注解;以及
获取所述源码库中对应于方法的源码的权限名称,根据所述方法的源码的权限名称和所述方法的权限标识信息,生成所述方法的源码的预设注解。
第二方面,本申请实施例提供了一种源码的访问权限控制装置,包括:
拦截模块,用于拦截用户对目标源码的访问请求;
提取模块,用于在所述目标源码具有预设注解的情况下,提取所述目标源码的权限标识信息;
查询模块,用于根据所述权限标识信息和所述用户标识信息查询预设权限控制集,并根据查询结果判断所述用户是否具有访问所述目标源码的访问权限;
决策模块,用于在判断到所述用户具有访问所述目标源码的访问权限的情况下,允许所述用户访问所述目标源码。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述源码的访问权限控制方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述源码的访问权限控制方法。
相比于相关技术,本申请实施例提供的源码的访问权限控制方法、源码的访问权限控制装置、计算机设备和计算机可读存储介质,通过拦截用户对目标源码的访问请求;在目标源码具有预设注解的情况下,提取目标源码的权限标识信息;根据权限标识信息和用户标识信息查询预设权限控制集,并根据查询结果判断用户是否具有访问目标源码的访问权限;在判断到用户具有访问目标源码的访问权限的情况下,允许用户访问目标源码,解决了相关技术中源码访问权限控制不合理的问题,细微化了源码访问权限控制的颗粒度。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种源码的访问权限控制方法的流程图;
图2是根据本申请实施例的一种注解收集流程图;
图3是根据本申请优选实施例的一种源码的访问权限控制架构图;
图4是根据本申请实施例的一种源码的访问权限认证时序图;
图5是根据本申请实施例的一种源码的访问权限控制装置的结构框图;
图6是根据本申请实施例的计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所做出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供了一种源码的访问权限控制方法。图1是根据本申请实施例的一种源码的访问权限控制方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,拦截用户对目标源码的访问请求。
作为一种具体实施方式,可以通过Spring框架构造拦截器,接收用户发出的访问请求,并对该访问请求进行拦截,以便于在执行目标源码之前,验证该访问请求是否具有访问目标源码的访问权限。其中,Spring框架是一种轻量级控制反转和面向切面的容器框架,当然,构造拦截器的方法并不局限于本实施例所例举的方式,任何能够实现本申请中拦截功能的方案也是可能并被构想的。
步骤S102,在目标源码具有预设注解的情况下,提取目标源码的权限标识信息。
目标源码可以是类的源码,也可以是方法的源码,其中,注解用于描述目标源码,注解可以是元数据,即一种描述数据的数据,注解相当于源代码的元数据,通过相关源码处理约束,可以使注解对源码起作用。
注解包含权限标识信息,通过解析注解,可以得到权限标识信息。其中,权限标识信息可以被配置为权限代码,或者权限名称,或者权限代码与权限名称的组合。
步骤S103,根据权限标识信息和用户标识信息查询预设权限控制集,并根据查询结果判断用户是否具有访问目标源码的访问权限。
权限控制集可以被配置为包括权限标识信息和用户标识信息的数据库,其中,权限标识信息和用户标识信息存在关联关系。根据访问请求中的参数,可以从数据库中获取用户的用户标识信息,以及与用户关联的权限标识信息。通过匹配目标源码的权限标识信息与用户关联的权限标识信息,可以判断用户是否具有访问目标源码的访问权限。
步骤S104,在判断到用户具有访问目标源码的访问权限的情况下,允许用户访问目标源码。
在判断到用户具有访问目标源码的访问权限的情况下,即目标源码的权限标识信息与用户关联的权限标识信息相匹配,代表用户具有访问该目标源码的访问权限。如果注解标注于类的源码,则允许用户访问该类以及类中方法的源码;如果注解标注于方法的源码,则允许用户访问该方法的源码。
通过上述步骤,解决了相关技术中源码访问权限控制不合理的问题,细微化了源码访问权限控制的颗粒度。
本实施例针对类的源码与方法的源码进行访问权限控制,在此过程中,为了提升源码的访问权限控制效率,需排除对类和方法以外的源码的访问约束操作。在其中一些实施例中,在目标源码具有预设注解的情况下,提取目标源码的权限标识信息包括:判断目标源码是否为类或方法的源码;在判断到目标源码是类或方法的源码的情况下,根据目标源码的预设注解,提取目标源码的权限标识信息;在判断到目标源码不是类也不是方法的源码的情况下,允许用户访问目标源码。
在其中一些实施例中,根据目标源码的预设注解,提取目标源码的权限标识信息包括:判断目标源码是否具有预设注解;在判断到目标源码具有预设注解的情况下,根据目标源码的预设注解,提取目标源码的权限标识信息;在判断到目标源码不具有预设注解的情况下,允许用户访问目标源码。
在本实施例中,在目标源码具有注解的情况下,则代表对该目标源码的访问请求将受到约束。在目标源码不具有注解的情况下,则代表对该目标源码的访问请求将不受到约束。
在其中一些实施例中,在判断到目标源码不具有预设注解的情况下,允许用户访问目标源码包括:
在目标源码为类的源码的情况下,允许用户访问属于类的方法的源码中不具有预设注解的方法的源码;以及根据属于类的方法的源码的预设注解,提取方法的源码的权限标识信息,根据方法的源码的权限标识信息和用户标识信息查询预设权限控制集,并根据查询结果判断用户是否具有访问方法的源码的访问权限,在判断到用户具有访问方法的源码的访问权限的情况下,允许用户访问方法的源码。
其中,注解可以标注于类,同时还可以标注于该类中的方法。当注解标注于类上,将代表该类下所有方法都具有该注解对应的权限;当注解标注在类的方法上,将代表该方法的权限不再受该类的注解的约束,而是以该方法的注解为准,细微化源码访问权限控制的颗粒度。
基于与上述实施例相近的原理,在其中一些实施例中,在目标源码为方法的源码的情况下,判断方法所属的类是否具有预设注解;在判断到方法所属的类不具有预设注解的情况下,允许用户访问目标源码;在判断到方法所属的类具有预设注解的情况下,根据方法所属的类的源码的预设注解,提取方法所属的类的源码的权限标识信息,根据方法所属的类的源码的权限标识信息和用户标识信息查询预设权限控制集,并根据查询结果判断用户是否具有访问方法所属的类的源码的访问权限,在判断到用户具有访问方法所属的类的源码的访问权限的情况下,允许用户访问目标源码。
以下将给出注解的生成方法以及注解的收集方法的实施例。
关于注解的生成方法,在其中一些实施例中,在源码库中扫描具有预设注解的类和方法的源码之前,还包括:获取源码库中对应于类的源码的权限名称,根据类的源码的权限名称和类的权限标识信息,生成类的源码的预设注解;以及获取源码库中对应于方法的源码的权限名称,根据方法的源码的权限名称和方法的权限标识信息,生成方法的源码的预设注解。
作为一种具体实施方式,预设注解可以包含权限标识信息,权限标识信息可以被配置为权限代码,或者权限名称,或者权限代码与权限名称的组合。当权限代码为空时,默认权限标识信息将是类名与方法名的组合;权限名称为空时,默认权限标识信息将是权限代码。当注解标注在类名上,将代表对该类下所有方法的访问都受控于该注解;当注解标注在类的方法上,将代表该方法的权限不再受该类的注解的约束,访问权限以该方法的注解为准。没有使用注解的源码,在对其进行访问时,将不会受到访问约束,也不会对该源码进行扫描。
关于注解的收集方法,在其中一些实施例中,在源码库中扫描具有预设注解的类和方法的源码;在扫描到具有预设注解的方法的源码的情况下,提取具有预设注解的方法的源码的权限标识信息,并将该权限标识信息写入预设权限控制集;在所描到具有预设注解的类的源码的情况下,提取具有预设注解的类的源码以及属于该类的所有方法的源码的权限标识信息,并将该权限标识信息写入预设权限控制集。
图2示出了根据本申请优选实施例的一种注解收集流程图,如图2所示,该流程包括以下步骤:
步骤S201,当项目启动时启动注解扫描器,扫描所有该注解标注过的类和类的方法,形成该注解的权限集合。
步骤S202,遍历该注解的权限集合,并解析该注解,获取该注解所包含的权限标识信息。
步骤S203,根据权限标识信息在数据库中进行数据新增或更新处理,在权限标识信息已被配置的情况下,更新权限标识信息;否则,新增权限标识信息。
以下通过优选实施例对本申请实施例进行描述和说明。
图3是根据本申请优选实施例的一种源码的访问权限控制架构图,如图3所示,该架构主要包括用户中心、认证中心、权限控制中心。源码的访问权限控制架构与用户区的客户端可以通过POST请求或者GET请求进行通信,其中,POST请求和GET请求指属于HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求的两种请求方式。以下将分别对这三部分进行介绍。
用户中心:用于提供用户信息和用户登录日志。用户信息包括用户标识信息、用户名、用户真实姓名、用户加密串密码、用户手机号、用户最后登录时间。用户登录日志包括用户标识信息、用户登录时间、用户访问内容以及操作内容。用户信息可以存储在Mysql(关系型数据库管理系统)数据库中。
权限控制中心:用于收集项目中所有类与方法的权限标识信息,并向用户分配访问权限。作为一种具体实施方式,可以在启动项目的过程中,收集带有注解的类与方法,通过可视化界面,展示所有类与方法,并接收用户的输入,根据用户的输入向用户分配访问权限,生成用户权限信息,即将用户标识信息与权限标识信息进行关联,将用户权限信息存储在Redis(Remote Dictionary Server,远程字典服务)数据库中。
在其中一些实施例中,可以将权限标识以层级关系进行存储。
表1是根据本申请实施例的一种权限表,权限代码与父级权限代码之间是上下层级关系,没有父级的权限将是最上一级,即顶级,比如权限代码10000为顶级权限代码。如此设置,可以形成有层级关系的权限树状结构。
表1-权限表
权限代码 | 权限名称 | 父级权限代码 |
10000 | 单位网站管理 | |
10100 | 单位管理 | 10000 |
10101 | 单位新增 | 10100 |
10102 | 单位编辑 | 10100 |
10200 | 网站管理 | 10000 |
10201 | 网站新增 | 10200 |
10202 | 网站编辑 | 10200 |
表2是根据本申请实施例的一种用户信息表,其中包括用户标识信息、用户名称、手机号以及用户加密串。
表2-用户信息表
用户标识信息 | 用户名称 | 手机号 | 用户加密串 |
001 | 张良 | 13105719784 | Xyz |
002 | 韩信 | 13102587585 | ddd |
表3是根据本申请实施例的一种用户权限表,其中包括权限代码和用户标识信息,且权限代码和用户标识信息相关联,用户权限表中的权限也存在着层级关系。
表3-用户权限表
权限代码 | 用户标识信息 |
10000 | 001 |
10100 | 001 |
10101 | 001 |
10102 | 001 |
10200 | 001 |
10201 | 001 |
10202 | 001 |
10000 | 002 |
10100 | 002 |
10101 | 002 |
认证中心:用于对源码的访问请求进行认证。图4示出了根据本申请实施例的一种源码的访问权限认证时序图,如图4所示,当客户端发送访问请求时,认证中心拦截该访问请求,此时根据访问请求所携带的请求地址信息获取客户端访问的项目信息,或者类信息,或者方法信息,并且根据上述信息得到源码的权限标识。当认证客户端的访问请求时,会根据客户端的访问请求去Redis数据库中获取用户标识信息。为进一步校验用户访问合法性,将根据获取的用户标识信息,向用户中心发送用户信息请求,以根据获取的用户标识信息去用户中心匹配已配置的用户信息,若匹配成功,则返回用户信息;否则,返回用户不存在的提示信息。然后根据用户标识信息获取分配好的用户权限信息,从中获取分配给用户的权限标识信息。在进行权限校验的过程中,若从注解中解析的权限标识信息与分配给用户的权限标识信息匹配成功,则认证成功,进行访问源码处理;否则,认证失败,返回权限不足的提示信息。
以下将以某个注解F为例,介绍根据本申请提供的源码的访问控制方法进行源码访问的实施例。
要使注解F生效,在代码权限里控制代码执行权限,必须对所有请求进行拦截与校验。这里使用java语言实现。
(1)首先,建立名为WebAuthorizationInterceptor的类,并且该类继承Spring框架中的HandlerInterceptorAdapter类。其中,WebAuthorizationInterceptor将有自己的属性(authService)及方法(preHandle(request,respone,handle))。其中,preHandle代表WebAuthorizationInterceptor类的方法名;request代表经过Spring框架封装的请求对象,用于获取访问请求;handle用于根据request中的访问请求进行拦截,生成拦截结果;respone代表经过Spring框架封装的响应对象,其中包括拦截结果。
(2)通过preHandle(request,respone,handle)方法实现以下(a)至(f)逻辑:
(a)根据handle判断注解F是不是作用到类和方法,若不是将不进行拦截,若是将进行下一步操作。
(b)若注解F作用到类或者方法上,根据handle拿到HandlerMethod值。其中,HandlerMethod是指包含类(class)名与方法(method)名的信息。
(c)根据方法名或类名拿到注解F信息,注解F信息将携带该方法和类的权限标识信息,包括权限代码、权限名称。若该类或者方法没有该注解F,将不进行拦截,若有将进行下一步操作。
(d)若拿到的方法里有注解F,将获取注解F里面的权限标识信息。
(e)根据访问请求request获得用户标识信息,然后根据用户标识信息去数据库中获得分配给用户的所有权限代码。
(f)authService将进行权限校验,校验注解F的权限标识信息是否存在于用户的权限信息中,若存在将验证通过,用户有权限访问和执行,若不通过,将提示无权限执行或操作
(3)authService属性会根据访问请求所携带的信息,去校验用户访问合法性,步骤(2)中已用到,将对用户标识信息进行解密,得到用户真实信息数据,根据用户的真实信息数据获得用户的权限信息,比如,如表3所示的用户权限表,然后校验注解F的权限是否存在于用户权限信息里。
另外,通过本申请提供的源码的访问控制方法,开发过程中无需知道某个源码的内部实现原理,只需要根据注解就能进行访问权限控制,使得开发过程更简单,提高了开发者的开发效率。
本实施例还提供了一种源码的访问权限控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本申请实施例的一种源码的访问权限控制装置的结构框图,如图5所示,该装置包括:拦截模块51,提取模块52,查询模块53,决策模块54;其中,拦截模块51,用于拦截用户对目标源码的访问请求;提取模块52,耦合至拦截模块51,用于在目标源码具有预设注解的情况下,提取目标源码的权限标识信息;查询模块53,耦合至提取模块52,用于根据权限标识信息和用户标识信息查询预设权限控制集,并根据查询结果判断用户是否具有访问目标源码的访问权限;决策模块54,耦合至查询模块53,用于在判断到用户具有访问目标源码的访问权限的情况下,允许用户访问目标源码。
在其中一些实施例中,查询模块包括第一判断模块,用于判断目标源码是否为类或方法的源码;提取模块用于在判断到目标源码是类或方法的源码的情况下,根据目标源码的预设注解,提取目标源码的权限标识信息;决策模块用于在判断到目标源码不是类也不是方法的源码的情况下,允许用户访问目标源码。
在其中一些实施例中,查询模块还包括第二判断模块,用于判断目标源码是否具有预设注解;提取模块用于在判断到目标源码具有预设注解的情况下,根据目标源码的预设注解,提取目标源码的权限标识信息;决策模块用于在判断到目标源码不具有预设注解的情况下,允许用户访问目标源码。
在其中一些实施例中,决策模块用于在目标源码为类的源码的情况下,允许用户访问属于类的方法的源码中不具有预设注解的方法的源码;以及根据属于类的方法的源码的预设注解,提取方法的源码的权限标识信息,根据方法的源码的权限标识信息和用户标识信息查询预设权限控制集,并根据查询结果判断用户是否具有访问方法的源码的访问权限,在判断到用户具有访问方法的源码的访问权限的情况下,允许用户访问方法的源码。
在其中一些实施例中,装置还包括第三判断模块,用于在目标源码为方法的源码的情况下,判断方法所属的类是否具有预设注解;决策模块用于在判断到方法所属的类不具有预设注解的情况下,允许用户访问目标源码;提取模块用于在判断到方法所属的类具有预设注解的情况下,根据方法所属的类的源码的预设注解,提取方法所属的类的源码的权限标识信息,根据方法所属的类的源码的权限标识信息和用户标识信息查询预设权限控制集,并根据查询结果判断用户是否具有访问方法所属的类的源码的访问权限,在判断到用户具有访问方法所属的类的源码的访问权限的情况下,允许用户访问目标源码。
在其中一些实施例中,装置还包括:扫描模块,用于在源码库中扫描具有预设注解的类和方法的源码;第一提取子模块,用于在扫描到具有预设注解的方法的源码的情况下,提取具有预设注解的方法的源码的权限标识信息,并将该权限标识信息写入预设权限控制集;第二提取子模块,用于在所描到具有预设注解的类的源码的情况下,提取具有预设注解的类的源码以及属于该类的所有方法的源码的权限标识信息,并将该权限标识信息写入预设权限控制集。
在其中一些实施例中,装置还包括:第一获取模块,用于获取源码库中对应于类的源码的权限名称,根据类的源码的权限名称和类的权限标识信息,生成类的源码的预设注解;以及第二获取模块,用于获取源码库中对应于方法的源码的权限名称,根据方法的源码的权限名称和方法的权限标识信息,生成方法的源码的预设注解。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
另外,结合图1描述的本申请实施例源码的访问权限控制方法可以由计算机设备来实现。图6为根据本申请实施例的计算机设备的硬件结构示意图。
计算机设备可以包括处理器61以及存储有计算机程序指令的存储器62。
具体地,上述处理器61可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器62可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器62可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器62可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器62可在数据处理装置的内部或外部。在特定实施例中,存储器62是非易失性(Non-Volatile)存储器。在特定实施例中,存储器62包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器62可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器61所执行的可能的计算机程序指令。
处理器61通过读取并执行存储器62中存储的计算机程序指令,以实现上述实施例中的任意一种源码的访问权限控制方法。
在其中一些实施例中,计算机设备还可包括通信接口63和总线60。其中,如图6所示,处理器61、存储器62、通信接口63通过总线60连接并完成相互间的通信。
通信接口63用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口63还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线60包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线60包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线60可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线60可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该计算机设备可以基于获取到的对目标源码的访问请求,执行本申请实施例中的源码的访问权限控制方法,从而实现结合图1描述的源码的访问权限控制方法。
另外,结合上述实施例中的源码的访问权限控制方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种源码的访问权限控制方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种源码的访问权限控制方法,其特征在于,包括:
拦截用户对目标源码的访问请求;
在所述目标源码具有预设注解的情况下,提取所述目标源码的权限标识信息;
根据所述权限标识信息和所述用户标识信息查询预设权限控制集,并根据查询结果判断所述用户是否具有访问所述目标源码的访问权限;
在判断到所述用户具有访问所述目标源码的访问权限的情况下,允许所述用户访问所述目标源码。
2.根据权利要求1所述的源码的访问权限控制方法,其特征在于,在所述目标源码具有预设注解的情况下,提取所述目标源码的权限标识信息包括:
判断所述目标源码是否为类或方法的源码;在判断到所述目标源码是类或方法的源码的情况下,根据所述目标源码的预设注解,提取所述目标源码的权限标识信息;
在判断到所述目标源码不是类也不是方法的源码的情况下,允许所述用户访问所述目标源码。
3.根据权利要求1所述的源码的访问权限控制方法,其特征在于,根据所述目标源码的预设注解,提取所述目标源码的权限标识信息包括:
判断所述目标源码是否具有所述预设注解;
在判断到所述目标源码具有所述预设注解的情况下,根据所述目标源码的预设注解,提取所述目标源码的权限标识信息;
在判断到所述目标源码不具有所述预设注解的情况下,允许所述用户访问所述目标源码。
4.根据权利要求3所述的源码的访问权限控制方法,其特征在于,在判断到所述目标源码不具有所述预设注解的情况下,允许所述用户访问所述目标源码包括:
在所述目标源码为类的源码的情况下,允许所述用户访问属于所述类的方法的源码中不具有所述预设注解的方法的源码;以及
根据属于所述类的方法的源码的预设注解,提取所述方法的源码的权限标识信息,根据所述方法的源码的权限标识信息和所述用户标识信息查询所述预设权限控制集,并根据查询结果判断所述用户是否具有访问所述方法的源码的访问权限,在判断到所述用户具有访问所述方法的源码的访问权限的情况下,允许所述用户访问所述方法的源码。
5.根据权利要求3所述的源码的访问权限控制方法,其特征在于,在判断到所述目标源码不具有所述预设注解的情况下,允许所述用户访问所述目标源码包括:
在所述目标源码为方法的源码的情况下,判断所述方法所属的类是否具有所述预设注解;
在判断到所述方法所属的类不具有所述预设注解的情况下,允许所述用户访问所述目标源码;
在判断到所述方法所属的类具有所述预设注解的情况下,根据所述方法所属的类的源码的预设注解,提取所述方法所属的类的源码的权限标识信息,根据所述方法所属的类的源码的权限标识信息和所述用户标识信息查询所述预设权限控制集,并根据查询结果判断所述用户是否具有访问所述方法所属的类的源码的访问权限,在判断到所述用户具有访问所述方法所属的类的源码的访问权限的情况下,允许所述用户访问所述目标源码。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
在源码库中扫描具有所述预设注解的类和方法的源码;
在扫描到具有所述预设注解的方法的源码的情况下,提取具有所述预设注解的方法的源码的权限标识信息,并将该权限标识信息写入所述预设权限控制集;
在所描到具有所述预设注解的类的源码的情况下,提取具有所述预设注解的类的源码以及属于该类的所有方法的源码的权限标识信息,并将该权限标识信息写入所述预设权限控制集。
7.根据权利要求6所述的源码的访问权限控制方法,其特征在于,在源码库中扫描具有所述预设注解的类和方法的源码之前,所述方法还包括:
获取所述源码库中对应于类的源码的权限名称,根据所述类的源码的权限名称和所述类的权限标识信息,生成所述类的源码的预设注解;以及
获取所述源码库中对应于方法的源码的权限名称,根据所述方法的源码的权限名称和所述方法的权限标识信息,生成所述方法的源码的预设注解。
8.一种源码的访问权限控制装置,其特征在于,包括:
拦截模块,用于拦截用户对目标源码的访问请求;
提取模块,用于在所述目标源码具有预设注解的情况下,提取所述目标源码的权限标识信息;
查询模块,用于根据所述权限标识信息和所述用户标识信息查询预设权限控制集,并根据查询结果判断所述用户是否具有访问所述目标源码的访问权限;
决策模块,用于在判断到所述用户具有访问所述目标源码的访问权限的情况下,允许所述用户访问所述目标源码。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的源码的访问权限控制方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一项所述的源码的访问权限控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010448215.5A CN111625782B (zh) | 2020-05-25 | 2020-05-25 | 源码的访问权限控制方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010448215.5A CN111625782B (zh) | 2020-05-25 | 2020-05-25 | 源码的访问权限控制方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625782A true CN111625782A (zh) | 2020-09-04 |
CN111625782B CN111625782B (zh) | 2023-09-19 |
Family
ID=72259152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010448215.5A Active CN111625782B (zh) | 2020-05-25 | 2020-05-25 | 源码的访问权限控制方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625782B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112350997A (zh) * | 2020-10-16 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 数据库访问权限控制方法、装置、计算机设备和存储介质 |
CN112367304A (zh) * | 2020-10-22 | 2021-02-12 | 杭州大搜车汽车服务有限公司 | 请求限制方法、装置、计算机设备和存储介质 |
CN112597486A (zh) * | 2020-12-24 | 2021-04-02 | 广东广宇科技发展有限公司 | 一种基于Spring的防止重复访问Restful API的方法 |
CN112905970A (zh) * | 2021-03-24 | 2021-06-04 | 北京房江湖科技有限公司 | 权限校验方法、装置、计算机可读存储介质及电子设备 |
CN113849789A (zh) * | 2021-09-29 | 2021-12-28 | 中国平安财产保险股份有限公司 | 基于aop的权限校验方法、装置、设备及存储介质 |
CN114520742A (zh) * | 2022-02-21 | 2022-05-20 | 中国农业银行股份有限公司 | 访问请求的处理方法、装置及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187965A (zh) * | 2006-11-16 | 2008-05-28 | 思科技术公司 | 过滤对数据对象的访问 |
JP2009129326A (ja) * | 2007-11-27 | 2009-06-11 | Canon Inc | ソフトウェア開発システム、そのアクセス制限方法、サーバ装置、プログラムおよび記憶媒体 |
CN103049684A (zh) * | 2012-12-21 | 2013-04-17 | 大唐软件技术股份有限公司 | 一种基于rbac模型扩展的数据权限控制方法和系统 |
CN103838614A (zh) * | 2014-02-19 | 2014-06-04 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN105122255A (zh) * | 2012-12-17 | 2015-12-02 | 微软技术许可有限责任公司 | 权限受管的代码 |
US9830148B1 (en) * | 2017-01-27 | 2017-11-28 | Semmle Limited | Providing user-specific source code alert information |
US20190073455A1 (en) * | 2017-09-07 | 2019-03-07 | Salesforce.Com, Inc. | Managing the display of hidden proprietary software code to authorized licensed users |
CN110197052A (zh) * | 2019-05-31 | 2019-09-03 | 深圳前海微众银行股份有限公司 | 基于安卓平台的权限申请方法、装置、设备及存储介质 |
-
2020
- 2020-05-25 CN CN202010448215.5A patent/CN111625782B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187965A (zh) * | 2006-11-16 | 2008-05-28 | 思科技术公司 | 过滤对数据对象的访问 |
JP2009129326A (ja) * | 2007-11-27 | 2009-06-11 | Canon Inc | ソフトウェア開発システム、そのアクセス制限方法、サーバ装置、プログラムおよび記憶媒体 |
CN105122255A (zh) * | 2012-12-17 | 2015-12-02 | 微软技术许可有限责任公司 | 权限受管的代码 |
CN103049684A (zh) * | 2012-12-21 | 2013-04-17 | 大唐软件技术股份有限公司 | 一种基于rbac模型扩展的数据权限控制方法和系统 |
CN103838614A (zh) * | 2014-02-19 | 2014-06-04 | 华为技术有限公司 | 一种数据处理方法及装置 |
US9830148B1 (en) * | 2017-01-27 | 2017-11-28 | Semmle Limited | Providing user-specific source code alert information |
US20190073455A1 (en) * | 2017-09-07 | 2019-03-07 | Salesforce.Com, Inc. | Managing the display of hidden proprietary software code to authorized licensed users |
CN110197052A (zh) * | 2019-05-31 | 2019-09-03 | 深圳前海微众银行股份有限公司 | 基于安卓平台的权限申请方法、装置、设备及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112350997A (zh) * | 2020-10-16 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 数据库访问权限控制方法、装置、计算机设备和存储介质 |
CN112367304A (zh) * | 2020-10-22 | 2021-02-12 | 杭州大搜车汽车服务有限公司 | 请求限制方法、装置、计算机设备和存储介质 |
CN112367304B (zh) * | 2020-10-22 | 2022-08-16 | 杭州大搜车汽车服务有限公司 | 请求限制方法、装置、计算机设备和存储介质 |
CN112597486A (zh) * | 2020-12-24 | 2021-04-02 | 广东广宇科技发展有限公司 | 一种基于Spring的防止重复访问Restful API的方法 |
CN112905970A (zh) * | 2021-03-24 | 2021-06-04 | 北京房江湖科技有限公司 | 权限校验方法、装置、计算机可读存储介质及电子设备 |
CN113849789A (zh) * | 2021-09-29 | 2021-12-28 | 中国平安财产保险股份有限公司 | 基于aop的权限校验方法、装置、设备及存储介质 |
CN114520742A (zh) * | 2022-02-21 | 2022-05-20 | 中国农业银行股份有限公司 | 访问请求的处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111625782B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625782A (zh) | 源码的访问权限控制方法、装置、计算机设备和存储介质 | |
US10805346B2 (en) | Phishing attack detection | |
US9985961B2 (en) | Information processing system and authentication method | |
CN110784450A (zh) | 一种基于浏览器的单点登录方法和装置 | |
WO2020181809A1 (zh) | 基于接口校验的数据处理的方法、系统和计算机设备 | |
CN110708335A (zh) | 访问认证方法、装置及终端设备 | |
CN106713315B (zh) | 插件应用程序的登录方法和装置 | |
CN111259364B (zh) | 一种使用国密加密卡的方法、装置、设备及存储介质 | |
CN116366338B (zh) | 一种风险网站识别方法、装置、计算机设备及存储介质 | |
CN111159595A (zh) | 页面加载方法、系统、计算机设备和计算机可读存储介质 | |
JP2019519849A (ja) | サーバへの攻撃を防ぐ方法及びデバイス | |
CN113239853A (zh) | 一种基于隐私保护的生物识别方法、装置及设备 | |
RU2638779C1 (ru) | Способ и сервер для вьполнения авторизации приложения на электронном устройстве | |
CN108881383B (zh) | 通讯录数据处理方法、装置、计算机设备和存储介质 | |
US9762591B2 (en) | Message sender authenticity validation | |
CN116055067B (zh) | 一种弱口令检测的方法、装置、电子设备及介质 | |
CN112948857A (zh) | 一种文档处理方法及装置 | |
CN112528286B (zh) | 终端设备安全检测方法、关联设备以及计算机程序产品 | |
CN111695113B (zh) | 终端软件安装合规性检测方法、装置和计算机设备 | |
CN109145645B (zh) | 一种保护安卓手机中短信验证码的方法 | |
CN114338060A (zh) | 一种权限校验方法、装置、系统、设备及存储介质 | |
CN107517177B (zh) | 接口授权的方法和装置 | |
CN114826729B (zh) | 一种数据处理方法、页面更新方法及相关硬件 | |
KR102602086B1 (ko) | Qr코드를 이용한 안심전화 서비스를 위한 운영 서버 및 그 동작 방법 | |
KR20190095332A (ko) | 단말기의 사용자의 로컬 프로파일링을 위한 방법 및 개인 정보를 검색하기 위한 방법 |
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 |