掌桥专利:专业的专利平台
掌桥专利
首页

基于注解的认证方法、装置、设备及存储介质

文献发布时间:2023-06-19 18:37:28


基于注解的认证方法、装置、设备及存储介质

技术领域

本申请实施例涉及计算机技术领域,尤其涉及一种基于注解的认证方法、装置、设备及存储介质。

背景技术

随着计算机软件的发展,软件安全性的关注越来越高。后台管理接口需要一定的权限校验,以防止客户端非法破坏数据。

目前在进行校验时,交易通过前端判断不同的用户权限以实现页面和交易接口的隐藏。然而,通过前端判断用户权限实现页面和交易接口的隐藏仍然是不安全的,相关交易接口仍存在暴露风险。如何能够通过后端灵活的对交易接口权限认证进行配置成为亟待解决的问题。

发明内容

本申请提供一种基于注解的认证方法、装置、设备及存储介质,用以解决现有技术中交易权限认证安全性低、配置不灵活的问题。

第一方面,本申请实施例提供了一种基于注解的认证方法,包括:

通过第一接口为交易请求配置至少一个权限认证注解;

存储所述交易请求包含的权限认证注解;

通过拦截器拦截目标交易请求,获取所述目标交易请求的权限认证注解;

根据所述权限认证注解和用户权限信息进行认证。

第二方面,本申请实施例还提供了一种基于注解的认证装置,包括:

注解配置模块,用于通过第一接口为交易请求配置至少一个权限认证注解;

注解存储模块,用于存储所述交易请求包含的权限认证注解;

交易拦截模块,用于通过拦截器拦截目标交易请求,获取所述目标交易请求的权限认证注解;

认证模块,用于根据所述权限认证注解和用户权限信息进行认证。

第三方面,本申请实施例还提供了一种服务器,包括:处理器,以及与处理器通信连接的存储器;

存储器存储计算机执行指令;

处理器执行存储器存储的计算机执行指令,以实现如本申请实施例所示的基于注解的认证方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如本申请实施例所示的基于注解的认证方法。

本申请提供的基于注解的认证方法,通过第一接口为交易请求配置至少一个权限认证注解;存储所述交易请求包含的权限认证注解;通过拦截器拦截目标交易请求,获取所述目标交易请求的权限认证注解;根据所述权限认证注解和用户权限信息进行认证。通过第一接口能够实现权限认证的灵活配置,在后端无需为每个权限认证分别编辑认证代码。通过第一接口配置权限认证注解后,通过拦截器对触发的交易请求进行拦截,若拦截的交易请求需要进行权限认证,则根据交易请求配置的权限认证注解以及用户权限信息进行认证。实现在后端通过接口灵活配置交易请求的权限,以及对拦截的交易请求进行可靠的用户权限认证,提高交易权限认证的安全性,实现灵活的权限认证配置。

附图说明

图1是本申请实施例中提供的基于注解的认证方法的流程图一;

图2是本申请实施例中提供的基于注解的认证方法的流程图二;

图3是本申请实施例中提供的基于注解的认证装置的结构示意图一;

图4是本申请实施例中提供的基于注解的认证装置的结构示意图二;

图5是本申请实施例中提供的电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

后台管理接口需要一定的权限校验,以防止客户端非法破坏数据。在进行校验时,交易通过前端判断不同的用户权限以实现页面和交易接口的隐藏。然而,通过前端判断用户权限实现页面和交易接口的隐藏仍然是不安全的,相关交易接口仍存在暴露风险。如何能够通过后端灵活的对交易接口权限认证进行配置成为亟待解决的问题。

针对上述技术问题,本申请提出如下技术构思:在后台通过第一接口为需要进行权限认证的交易进行不同权限认证的配置。当触发交易请求时,根据交易请求配置的权限认证注解以及用户权限信息进行认证,不仅能够实现交易请求的权限认证的快速配置,通过后台认证能够提高安全性。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图1为本申请实施例提供的基于注解的认证方法的流程图一,本实施例可适用于后台对交易接口进行权限认证的情况,该方法可以由服务器或终端设备来执行。如图1所示,本申请提供的基于注解的认证方法,包括:

S101、通过第一接口为交易请求配置至少一个权限认证注解。

在需要进行权限认证的交易中,添加预先生成的权限认证注解,以激活交易的权限认证功能。示例性的,在交易的头部,标注交易所使用的权限。“@AdminAuthority({AdminAuth.SP_ADMIN,AdminAuth.SYS_ADMIN})”,该语句相当于配置了AdminAuth.SP_ADMIN和AdminAuth.SYS_ADMIN两种权限认证注解。配置有上述权限认证注解的交易只有满足上述两种权限认证注解中的一个或多个,才可以进行访问。

进一步的,可以在需要进行权限认证的方法处添加权限认证注解,进而当运行至该方法时,可以根据配置的权限认证注解进行相应的权限认证,实现不同级别的权限认证配置。

进一步的,在S101、通过第一接口为交易请求配置至少一个权限认证注解之前,还包括:

预先配置多个权限认证的权限认证注解。

可以通过数组方式存储生成的多个权限认证注解。示例性的,第一接口可以为org.springframework.beans.factory.config.BeanPostProcessor接口。通过下述方式以数组形式建立多个权限认证注解。“public@interface AdminAuthority{

/**

*具体有效权限标识

*/

AdminAuth[]value();

}”

可以在数组中配置不同类型,不同权限级别的多个权限认证注解,实现多种权限认证注解的生成,通过数组能够多个权限认证注解进行统一存储和管理。通过实现org.springframework.beans.factory.config.BeanPostProcessor接口,重写postProcessAfterInitialization方法,定义AdminAuthorityAnnotationContainer工具类,用于在bean实例初始化后保存交易及交易所需要的具体权限,并提供动态修改交易接口权限的功能。

S102、存储交易请求包含的权限认证注解。

在为交易请求配置其适用的权限认证注解后,获取交易请求包含的权限认证注解。

可选的,存储交易请求包含的权限认证注解,可以通过下述方式实施:

在对交易请求实例进行初始化后,遍历交易请求实例包含的目标方法,判断目标方法是否已添加权限认证注解,目标方法为实例中的任意一个方法;如果已添加权限认证注解,则存储目标方法和权限认证注解。

对交易请求进行实例化,对实例化的交易请求进行初始化。在进行初始化后,便利交易请求中包含的每个目标方法。目标方法为交易请求代码中包含的方法。

进一步的,遍历交易请求实例包含的目标方法,包括:

判断交易请求实例是否属于预设实例类型;

若交易请求实例属于预设实例类型,遍历交易请求实例包含的目标方法。

预设实例类型可以为控制类实例Controller bean。如果交易请求实例为Controller bean,则遍历交易请求实例包含的目标方法,判断目标方法是否配置了权限认证注解。

进一步的,存储目标方法和权限认证注解,包括:

在预设接口类的图中,存储目标方法和权限认证注解,预设接口类用于在运行过程中提供动态修改交易接口权限的功能。

预设接口类可以为AdminAuthorityAnnotationContainer工具类,通过AdminAuthorityAnnotationContainer的图map存储目标方法和权限认证注解。

示例性的,在bean实例化后判断交易请求实例是否是Controller bean,如果是遍历其中所有的方法,判断其中目标方法是否添加了自定义的注解。如果有该注解则在AdminAuthorityAnnotationContainer类中保存目标方法名及其权限认证注解中的权限值。其中AdminAuthorityAnnotationContainer可以暴露相关的接口向外提供程序运行过程中动态修改交易接口权限的功能。

通过上述方式能够在后台获取交易请求实例适用的一个或多个权限认证,通过

S103、通过拦截器拦截目标交易请求,获取目标交易请求的权限认证注解。

当触发目标交易请求时,通过拦截器在执行目标交易请求之前对交易请求进行权限认证。可选的,获取目标交易请求的权限认证注解,包括:

判断目标交易请求是否已存储于预设接口类的图中;

若已存储,则获取目标交易请求的权限认证注解。

拦截目标交易请求后,判断是否已经存储有该目标交易请求的权限认证注解。具体的,判断目标交易请求是否已存储于预设接口类的图中。如果目标交易请求已存储于预设接口类的图中,则通过预设接口类的图获取目标交易请求的权限认证注解。

通过实现org.springframework.web.servlet.HandlerInterceptor接口自定义权限拦截器,重写preHandle方法,在交易请求前拦截进行权限验证,判断该交易接口是否在AdminAuthorityAnnotationContainer中存在,如果不存在则表示该交易接口不需要进行权限验证,可以直接访问。如果存在则说明该交易接口需要进行权限验证。

可选的,在获取目标交易请求的权限认证注解之前,还包括:

在用户的登录过程中获取用户权限信息。

用户触发目标交易请求前,需要进行登录验证。在登录过程中,根据用户名称获取用户权限信息。

S104、根据权限认证注解和用户权限信息进行认证。

根据用户权限信息和权限认证注解进行权限认证。若用户权限信息满足权限认证注解的标准,则权限认证通过。

通过比较用户的权限和取得的自定义注解中的权限配置进行比较,用户信息及其相关权限由前一个登录拦截器通过用户的token获得并保存在ThreadLocal中或直接通过相关的缓存获得,如果自定义注解中配置的权限有任一和用户权限相匹配,则说明该用户可以正常访问该交易接口,否则抛出相关异常。可选的,用户本身的权限可以是多种的,本示例仅演示用户拥有一种权限的情况,但不影响正常的相关流程。

本申请提供的基于注解的认证方法,通过第一接口为交易请求配置至少一个权限认证注解;存储交易请求包含的权限认证注解;通过拦截器拦截目标交易请求,获取目标交易请求的权限认证注解;根据权限认证注解和用户权限信息进行认证。通过第一接口能够实现权限认证的灵活配置,在后端无需为每个权限认证分别编辑认证代码。通过第一接口配置权限认证注解后,通过拦截器对触发的交易请求进行拦截,若拦截的交易请求需要进行权限认证,则根据交易请求配置的权限认证注解以及用户权限信息进行认证。实现在后端通过接口灵活配置交易请求的权限,以及对拦截的交易请求进行可靠的用户权限认证,提高交易权限认证的安全性,实现灵活的权限认证配置。

图2为本申请实施例提供的基于注解的认证方法的流程图二。如图2所示,基于注解的认证方法,包括如下步骤:

S201、预先配置多个权限认证的权限认证注解。

S202、通过第一接口为交易请求配置至少一个权限认证注解。

S203、在对交易请求实例进行初始化后,判断交易请求实例是否属于预设实例类型。

S204、若交易请求实例属于预设实例类型,遍历交易请求实例包含的目标方法。

S205、判断目标方法是否已添加权限认证注解,目标方法为实例中的任意一个方法。

S206、如果已添加权限认证注解,则在预设接口类的图中,存储目标方法和权限认证注解,预设接口类用于在运行过程中提供动态修改交易接口权限的功能

S207、在用户的登录过程中获取用户权限信息。

S208、通过拦截器拦截目标交易请求,判断目标交易请求是否已存储于预设接口类的图中。

S209、若已存储,则获取目标交易请求的权限认证注解。

S210、在用户的登录过程中获取用户权限信息。

S211、根据权限认证注解和用户权限信息进行认证。

本发明实施例提供了一种基于Spring的权限认证,通过自定义权限验证的注解,并定义其有效标记,通过实现org.springframework.web.servlet.HandlerInterceptor接口自定义拦截器,根据用户信息中的权限于当前交易接口的权限进行比较来进行权限验证,若用户的权限在注解中标识,则表示用户权限验证通过,可以访问该交易接口。用户可以为每个交易接口灵活的配置权限范围,由拦截器自动进行验证而不需要其他多余的操作,可以让用户更加注重于软件业务逻辑的相关工作。由于在程序的启动过程中提前保存了所有需要权限验证的相关交易接口信息,提供了相关的工具类用于操作,因此提供了在程序运行过程中进行动态修改相关交易接口权限的功能,提高了效率。

图3为本申请实施例提供的基于注解的认证装置的结构示意图。如图3所示,该基于注解的认证装置,包括:注解配置模块301、注解存储模块302、交易拦截模块303以及认证模块304。

注解配置模块301,用于通过第一接口为交易请求配置至少一个权限认证注解;

注解存储模块302,用于存储所述交易请求包含的权限认证注解;

交易拦截模块303,用于通过拦截器拦截目标交易请求,获取所述目标交易请求的权限认证注解;

认证模块304,用于根据所述权限认证注解和用户权限信息进行认证。

在上述实施方式的基础上,如图4所示,还包括注解生成模块305,注解生成模块305用于:

预先配置多个权限认证的权限认证注解。

在上述实施方式的基础上,注解存储模块302用于:

在对交易请求实例进行初始化后,遍历所述交易请求实例包含的目标方法,判断所述目标方法是否已添加权限认证注解,所述目标方法为所述实例中的任意一个方法;

如果已添加权限认证注解,则存储所述目标方法和所述权限认证注解。

在上述实施方式的基础上,注解存储模块302用于:判断所述交易请求实例是否属于预设实例类型;

若所述交易请求实例属于预设实例类型,遍历所述交易请求实例包含的目标方法。

在上述实施方式的基础上,注解存储模块302用于:在预设接口类的图中,存储所述目标方法和所述权限认证注解,所述预设接口类用于在运行过程中提供动态修改交易接口权限的功能。

在上述实施方式的基础上,交易拦截模块303用于:所述获取所述目标交易请求的权限认证注解,包括:

判断所述目标交易请求是否已存储于所述预设接口类的图中;

若已存储,则获取所述目标交易请求的权限认证注解。

在上述实施方式的基础上,还包括用户权限信息获取模块306,用户权限信息获取模块306用于:

在用户的登录过程中获取用户权限信息。

本申请提供的基于注解的认证装置,注解配置模块301,用于通过第一接口为交易请求配置至少一个权限认证注解;注解存储模块302,用于存储所述交易请求包含的权限认证注解;交易拦截模块303,用于通过拦截器拦截目标交易请求,获取所述目标交易请求的权限认证注解;认证模块304,用于根据所述权限认证注解和用户权限信息进行认证。

通过第一接口能够实现权限认证的灵活配置,在后端无需为每个权限认证分别编辑认证代码。通过第一接口配置权限认证注解后,通过拦截器对触发的交易请求进行拦截,若拦截的交易请求需要进行权限认证,则根据交易请求配置的权限认证注解以及用户权限信息进行认证。实现在后端通过接口灵活配置交易请求的权限,以及对拦截的交易请求进行可靠的用户权限认证,提高交易权限认证的安全性,实现灵活的权限认证配置。

本申请实施例提供的基于注解的认证装置,可用于执行上述实施例中基于注解的认证方法的技术方案,其实现原理和技术效果类似,在此不再赘述。

需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,注解存储模块302可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上注解存储模块302的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

图5为本申请实施例提供的电子设备的结构示意图。如图5所示,该电子设备可以包括:收发器41、处理器42、存储器43。

处理器42执行存储器存储的计算机执行指令,使得处理器42执行上述实施例中的方案。处理器42可以是通用处理器,包括中央处理器CPU、网络处理器(network processor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

存储器43通过系统总线与处理器42连接并完成相互间的通信,存储器43用于存储计算机程序指令。

收发器41可以用于与客户端进行数据交互。

系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(randomaccess memory,RAM),也可能还包括非易失性存储器(non-volatile memory)。

本申请实施例提供的电子设备,可以是上述实施例的服务器或终端设备。

本申请实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中基于注解的认证方法的技术方案。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例基于注解的认证方法的技术方案。

本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中基于注解的认证方法的技术方案。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

技术分类

06120115630382