审计日志记录方法、装置、电子设备及存储介质与流程

未命名 07-29 阅读:236 评论:0


1.本发明涉及日志审计技术领域,尤其涉及一种审计日志记录方法、装置、电子设备及存储介质。


背景技术:

2.审计日志记录是关于应用服务操作系统的基础功能。其中,涉及到用户的业务流程都要求进行日志记录。
3.相关技术可知,当前进行审计日志记录需要编写日志代码,且日志代码和业务代码是耦合在一起的,这导致不能便捷、快速得获取审计日志。当前,寻找一种能够便捷、快速获取审计日志的方法成为研究热点。


技术实现要素:

4.本发明提供一种审计日志记录方法、装置、电子设备及存储介质,实现能够将业务代码和日志代码解耦,可以便捷、快速得获取与操作事件对应的审计日志。
5.本发明提供一种审计日志记录方法,应用于应用服务操作系统,所述方法包括:确定操作事件和事件处理内容,其中,所述事件处理内容为实现所述操作事件的代码对应的处理内容;确定自定义函数,其中,所述自定义函数用于确定所述事件处理内容上的注解式配置在所述事件处理内容执行前进行解析或者在所述事件处理内容执行后进行解析;将所述自定义函数装箱至spring框架的上下文,其中,所述spring框架与所述应用服务操作系统相对应;对所述事件处理内容进行切面拦截,得到所述注解式配置;基于所述自定义函数,对所述注解式配置进行解析,得到解析结果;基于所述解析结果,得到与所述操作事件对应的审计日志。
6.根据本发明提供的一种审计日志记录方法,所述对所述事件处理内容进行切面拦截,具体包括:基于所述spring框架下的springaop,对所述事件处理内容进行切面拦截;所述基于所述自定义函数,对所述注解式配置进行解析,具体包括:基于所述自定义函数和所述spring框架下的springel,对所述注解式配置进行解析。
7.根据本发明提供的一种审计日志记录方法,所述基于所述自定义函数和所述spring框架下的springel,对所述注解式配置进行解析,得到解析结果,具体包括:基于所述自定义函数,对所述注解式配置进行分类,得到第一注解式配置和第二注解式配置,其中,所述第一注解式配置为在所述事件处理内容执行前进行解析的注解式配置,所述第二注解式配置为在所述事件处理内容执行后进行解析的注解式配置;在所述事件处理内容执行前,基于所述springel,对所述第一注解式配置进行解析,得到第一解析结果;在所述事件处理内容执行后,基于所述springel,对所述第二注解式配置进行解析,得到第二解析结果;基于所述第一解析结果和所述第二解析结果,得到所述解析结果。
8.根据本发明提供的一种审计日志记录方法,在所述基于所述自定义函数,对所述注解式配置进行分类,得到第一注解式配置和第二注解式配置之后,所述方法还包括:将所
述第一注解式配置存储至第一虚拟内存;将所述第二注解式配置存储至第二虚拟内存;所述在所述事件处理内容执行前,基于所述springel,对所述第一注解式配置进行解析,得到第一解析结果,具体包括:在所述事件处理内容执行前,遍历所述第一虚拟内存,基于所述springel对所述第一注解式配置进行解析,得到第一解析结果;所述在所述事件处理内容执行后,基于所述springel,对所述第二注解式配置进行解析,得到第二解析结果,具体包括:在所述事件处理内容执行后,遍历所述第二虚拟内存,基于所述springel对所述第二注解式配置进行解析,得到第二解析结果。
9.根据本发明提供的一种审计日志记录方法,在所述基于所述自定义函数,对所述注解式配置进行分类,得到第一注解式配置和第二注解式配置之后,所述方法还包括:基于所述第一注解式配置,得到与所述第一注解式配置对应的第一属性key值,以及与所述第一属性key值对应第一value表达式字符串;所述基于所述springel,对所述第一注解式配置进行解析,得到第一解析结果,具体包括:基于所述springel,创建与所述第一value表达式字符串对应的springel解析的第一入参;基于所述第一入参,将所述第一value表达式字符串转换为第一表达式对象;调用语言函数获取所述第一表达式对象解析后的第一解析值,并将所述第一解析值作为所述第一解析结果。
10.根据本发明提供的一种审计日志记录方法,在所述基于所述自定义函数,对所述注解式配置进行分类,得到第一注解式配置和第二注解式配置之后,所述方法还包括:基于所述第二注解式配置,得到与所述第二注解式配置对应的第二属性key值,以及与所述第二属性key值对应第二value表达式字符串;所述基于所述springel,对所述第二注解式配置进行解析,得到第二解析结果,具体包括:基于所述springel,创建与所述第二value表达式字符串对应的springel解析的第二入参;基于所述第二入参,将所述第二value表达式字符串转换为第二表达式对象;调用语言函数获取所述第二表达式对象解析后的第二解析值,并将所述第二解析值作为所述第二解析结果。
11.根据本发明提供的一种审计日志记录方法,在所述基于所述解析结果,得到与所述操作事件对应的审计日志之后,所述方法还包括:基于所述spring框架下的springboot自动装配与所述spring框架对应的bean类;基于所述bean类,扩展出存储接口;调用所述存储接口,将所述审计日志存储在所述存储接口。
12.本发明还提供一种审计日志记录装置,应用于应用服务操作系统,所述装置包括:第一模块,用于确定操作事件和事件处理内容,其中,所述事件处理内容为实现所述操作事件的代码对应的处理内容;第二模块,用于确定自定义函数,其中,所述自定义函数用于确定所述事件处理内容上的注解式配置在所述事件处理内容执行前进行解析或者在所述事件处理内容执行后进行解析;第三模块,用于将所述自定义函数装箱至spring框架的上下文,其中,所述spring框架与所述应用服务操作系统相对应;第四模块,用于对所述事件处理内容进行切面拦截,得到所述注解式配置;第五模块,用于基于所述自定义函数,对所述注解式配置进行解析,得到解析结果;第六模块,用于基于所述解析结果,得到与所述操作事件对应的审计日志。
13.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的审计日志记录方法。
14.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的审计日志记录方法。
15.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述的审计日志记录方法。
16.本发明提供的审计日志记录方法、装置、电子设备及存储介质,通过对事件处理内容进行切面拦截,得到注解式配置,再基于自定义函数,判断事件处理内容的注解式配置需要在事件处理内容执行前进行解析还是在事件处理内容执行后进行解析,并对注解式配置进行解析,得到解析结果,从而得到与操作事件对应的审计日志。实现了基于配置化方式获取审计日志,从而将业务代码和日志代码解耦,进而可以便捷、快速得获取与操作事件对应的审计日志。
附图说明
17.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本发明提供的审计日志记录方法的流程示意图之一;
19.图2是本发明提供的基于自定义函数和springel,对注解式配置进行解析,得到解析结果的流程示意图之一;
20.图3是本发明提供的基于自定义函数和springel,对注解式配置进行解析,得到解析结果的流程示意图之二;
21.图4是本发明提供的确定第一解析结果的流程示意图;
22.图5是本发明提供的确定第二解析结果的流程示意图;
23.图6是本发明提供的审计日志记录方法的流程示意图之二;
24.图7是本发明提供的审计日志记录方法的流程示意图之三;
25.图8是本发明提供的审计日志记录装置的结构示意图;
26.图9是本发明提供的电子设备的结构示意图。
具体实施方式
27.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.本发明提供的审计日志记录方法,可以应用于应用服务操作系统。其中,应用服务操作系统可以用于执行操作事件,本发明可以获取关于操作事件的审计日志。在又一示例中,本发明提供的审计日志记录方法还可以通过一种sdk组件实现,其中,sdk组件可以包括springboot自动装配bean;可以包括springaop切面实现逻辑处理;可以包括自定义函数上下文装箱、自定义函数封装threadlocal存储map对象;以及还可以包括操作日志信息存储方式的接口扩展。在应用过程中,只需在事件处理内容上进行配置,便可以收集操作日志信
息存储入库,从而可以将业务代码和日志代码解耦,进而可以便捷、快速得获取与操作事件对应的审计日志。需要说明的是,事件处理内容可以理解为是springaop执行过程中所涉及的目标方法,其中,目标方法为实现操作事件的业务代码对应的方法。
29.需要说明的是,本发明提供的审计日志记录方法可以应用于各类应用服务操作系统执行的服务操作,在应用过程中,无需重复开发关于审计日志记录的模块,从而可以实现审计日志记录的低成本性和可扩展性。
30.图1是本发明提供的审计日志记录方法的流程示意图之一。
31.为了进一步介绍本发明提供的审计日志记录方法,下面将结合图1进行说明。
32.在本发明一示例性实施例中,审计日志记录方法可以应用于应用服务操作系统,其中,应用服务操作系统可以用于执行操作事件。结合图1可知,审计日志记录方法可以包括步骤110至步骤160,下面将分别介绍各步骤。
33.在步骤110中,确定操作事件和事件处理内容,其中,事件处理内容为实现操作事件的代码对应的处理内容。
34.在一种实施例中,可以确定操作事件,其中,操作事件可以认为是基于应用服务操作系统进行执行的操作事件,在基于应用服务操作系统进行执行操作事件的过程中需要记录相关的日志,即审计日志。在一示例中,若基于应用服务操作系统执行操作员m修改派单员a到派单员b的操作事件的过程中,需要记录审计日志“操作员m修改派单员a到派单员b”。
35.在步骤120中,确定自定义函数,其中,自定义函数用于确定事件处理内容上的注解式配置在事件处理内容执行前进行解析或者在事件处理内容执行后进行解析。
36.在一种实施例中,自定义函数可以用于确定事件处理内容上的注解式配置是在事件处理内容执行前进行解析,还是在事件处理内容执行后进行解析。在应用过程中,自定义函数可以决定事件处理内容上某个属性配置(对应注解式配置)的解析是否需要在事件处理内容执行前执行,还是在事件处理内容执行后执行。在一示例中,若基于自定义函数确定是在事件处理内容执行前进行配置解析,此时若想拿到新插入数据的主键id,则需要实现自定义函数方法获取主键id,并设置此函数在事件处理内容执行后执行。
37.在步骤130中,将自定义函数装箱至spring框架的上下文,其中,spring框架与服务操作系统相对应。
38.在步骤140中对事件处理内容进行切面拦截,得到注解式配置。
39.在一种实施例中,可以将确定的自定义函数装箱至与服务操作系统相对应的spring框架的上下文中。进一步的,可以基于spring框架下的springaop对事件处理内容进行切面拦截,以得到事件处理内容的注解式配置。其中,注解式配置可以包括事件处理内容、事件处理内容上配置的日志内容以及事件处理内容的入参等。
40.在步骤150中,基于自定义函数,对注解式配置进行解析,得到解析结果。
41.在一种实施例中,可以基于自定义函数和spring框架下的springel,对注解式配置进行解析。
42.图2是本发明提供的基于自定义函数和springel,对注解式配置进行解析,得到解析结果的流程示意图之一。
43.下面将结合图2对基于自定义函数和springel,对注解式配置进行解析,得到解析结果的过程进行说明。
44.在本发明一示例性实施例中,结合图2可知,基于自定义函数和springel,对注解式配置进行解析,得到解析结果可以包括步骤210至步骤240,下面将分别介绍各步骤。
45.在步骤210中,基于自定义函数,对注解式配置进行分类,得到第一注解式配置和第二注解式配置。
46.其中,第一注解式配置为在事件处理内容执行前进行解析的注解式配置,第二注解式配置为在事件处理内容执行后进行解析的注解式配置。
47.在一种实施例中,可以基于自定义函数,对事件处理内容的注解式配置进行分类,得到需要在事件处理内容执行前进行解析的第一注解式配置,以及需要在事件处理内容执行后进行解析的第二注解式配置。通过本实施例,可以有效区分出第一注解式配置和第二注解式配置。
48.在步骤220中,在事件处理内容执行前,基于springel,对第一注解式配置进行解析,得到第一解析结果。
49.在步骤230中,在事件处理内容执行后,基于springel,对第二注解式配置进行解析,得到第二解析结果。
50.在步骤240中,基于第一解析结果和第二解析结果,得到解析结果。
51.在一种实施例中,可以在事件处理内容执行前,基于springel对各个第一注解式配置进行解析,得到第一解析结果。进一步的,还可以在事件处理内容执行后,基于springel对各个第二注解式配置进行解析,得到第二解析结果。再基于第一解析结果和第二解析结果的对应关系,将第一解析结果和第二解析结果进行对应性组合,即可得到最终的解析结果。其中,解析结果与审计日志相对应。
52.在步骤160中,基于解析结果,得到与操作事件对应的审计日志。
53.在一种实施例中,基于解析结果可以得到与操作事件对应的审计日志。在本实施例中,通过配置化方式获取审计日志,从而将业务代码和日志代码解耦,进而可以便捷、快速得获取与操作事件对应的审计日志。在应用过程中,通过配置化方式接入用户操作的日志记录,可以实现对业务代码的低侵入性,并且,通过配置化方式接入用户操作的日志记录还可以实现快速接入,降低接入成本。
54.本发明提供的审计日志记录方法,对事件处理内容进行切面拦截,得到注解式配置,再基于自定义函数,判断事件处理内容的注解式配置需要在事件处理内容执行前进行解析还是在事件处理内容执行后进行解析,并对注解式配置进行解析,得到解析结果,从而得到与操作事件对应的审计日志。实现了基于配置化方式获取审计日志,从而将业务代码和日志代码解耦,进而可以便捷、快速得获取与操作事件对应的审计日志。
55.图3是本发明提供的基于自定义函数和springel,对注解式配置进行解析,得到解析结果的流程示意图之二。
56.为了进一步介绍本发明提供的审计日志记录方法,下面将结合图3进行说明。
57.在本发明一示例性实施例中,结合图3可知,基于自定义函数和springel,对注解式配置进行解析,得到解析结果可以包括步骤310至步骤360,其中,步骤310与步骤210、步骤360与步骤240相同或相似,其具体实施方式和有益效果请参照前文描述,在本实施例中不再赘述,下面将分别介绍步骤320至步骤350。
58.在步骤320中,将第一注解式配置存储至第一虚拟内存。
59.在步骤330中,将第二注解式配置存储至第二虚拟内存。
60.在一种实施例中,可以分别将第一注解式配置存储至第一虚拟内存,例如map1中,以及将将第二注解式配置存储至第二虚拟内存,例如map2中。通过将第一注解式配置和第二注解式配置分别存储至不同的虚拟内存中,便于基于springel对第一注解式配置和第二注解式配置进行解析,从而可以得到全面的解析结果,为得到准确的审计日志打下基础。
61.在又一示例中,在对自定义函数进行上下文装箱时,可以将所有的自定义函数以方法名作为key,以函数实现类bean作为value存储到内存中。当应用服务操作系统启动对应的操作服务式,便可以加载,从而可以便于在springel解析函数时能够根据函数方法名获取对应实现类。在又一示例中,还可以定义threadlocal《map》对象,在自定义函数中定义map对象,其中,存储的内容是函数方法名为key,对应的返回对象为value,从而可以解决注解配置中使用返回对象里多个字段时要调用多次此函数方法的问题。
62.在步骤340中,在事件处理内容执行前,遍历第一虚拟内存,基于springel对第一注解式配置进行解析,得到第一解析结果。
63.在步骤350中,在事件处理内容执行后,遍历第二虚拟内存,基于springel对第二注解式配置进行解析,得到第二解析结果
64.在步骤360中,基于第一解析结果和第二解析结果,得到解析结果。
65.在一种实施例中,可以在事件处理内容执行前,遍历第一虚拟内存,从而可以确保基于springel对各个第一注解式配置进行解析以得到第一解析结果。进一步的,还可以在事件处理内容执行后,遍历第二虚拟内存,从而可以确保基于springel对各个第二注解式配置进行解析以得到第二解析结果。再基于第一解析结果和第二解析结果的对应关系,将第一解析结果和第二解析结果进行对应性组合,即可得到最终的解析结果。其中,解析结果与审计日志相对应。
66.图4是本发明提供的确定第一解析结果的流程示意图。
67.下面将结合图4对确定第一解析结果的过程进行说明。
68.在本发明一示例性实施例中,结合图4可知,确定第一解析结果可以包括步骤410至步骤450,其中,步骤410与步骤210相同或相似,其具体实施方式和有益效果请参照前文描述,在本实施例中不再赘述,下面将分别介绍步骤420至步骤450。
69.在步骤420中,基于第一注解式配置,得到与第一注解式配置对应的第一属性key值,以及与第一属性key值对应第一value表达式字符串。
70.在一种实施例中,可以基于第一注解式配置,得到与第一注解式配置对应的第一属性key值,以及与第一属性key值对应第一value表达式字符串。其中,第一属性key值与第一value表达式字符串是相对应的。在应用过程中,通过解析出第一value表达式字符串的第一解析结果,可以确定出关于在事件处理内容执行前的操作日志。
71.在步骤430中,基于springel,创建与第一value表达式字符串对应的springel解析的第一入参。
72.在步骤440中,基于第一入参,将第一value表达式字符串转换为第一表达式对象。
73.在步骤450中,调用语言函数获取第一表达式对象解析后的第一解析值,并将第一解析值作为第一解析结果。
74.在一种实施例中,在解析事件处理内容执行前执行的属性对应的value表达式字
符串(对应第一value表达式字符串)的过程中,可以首先创建methodbasedevaluationcontext上下文对象作为springel核心解析的入参(对应第一入参)。进一步的,再继承spelexpressionparser类重写parseexpression方法传入templateparsercontext上下文,以及继承cachedexpressionevaluator类调用getexpression方法将第一value表达式字符串转换为expression表达式对象(对应第一表达式对象),然后调用getvalue方法获取表达式(对应第一表达式对象)解析后的值即实现了springel表达式的核心解析,即得到的第一解析结果。通过本实施例,实现在不进行日志代码编写的情况下,可以实现获取关于在事件处理内容执行前的审计日志,从而将业务代码和日志代码解耦,进而可以便捷、快速得获取与操作事件对应的审计日志。
75.图5是本发明提供的确定第二解析结果的流程示意图。
76.下面将结合图5对确定第二解析结果的过程进行说明。
77.在本发明一示例性实施例中,结合图5可知,确定第二解析结果可以包括步骤510至步骤550,其中,步骤510与步骤210相同或相似,其具体实施方式和有益效果请参照前文描述,在本实施例中不再赘述,下面将分别介绍步骤520至步骤550。
78.在步骤520中,基于第二注解式配置,得到与第二注解式配置对应的第二属性key值,以及与第二属性key值对应第二value表达式字符串。
79.在一种实施例中,可以基于第二注解式配置,得到与第二注解式配置对应的第二属性key值,以及与第二属性key值对应第二value表达式字符串。其中,第二属性key值与第二value表达式字符串是相对应的。在应用过程中,通过解析出第二value表达式字符串的第二解析结果,可以确定出关于在事件处理内容执行后的操作日志。
80.在步骤530中,基于springel,创建与第二value表达式字符串对应的springel解析的第二入参。
81.在步骤540中,基于第二入参,将第二value表达式字符串转换为第二表达式对象。
82.在步骤550中,调用语言函数获取第二表达式对象解析后的第二解析值,并将第二解析值作为第二解析结果。
83.在一种实施例中,在解析事件处理内容执行后执行的属性对应的value表达式字符串(对应第二value表达式字符串)的过程中,可以首先创建methodbasedevaluationcontext上下文对象作为springel核心解析的入参(对应第二入参)。进一步的,再继承spelexpressionparser类重写parseexpression方法传入templateparsercontext上下文,以及继承cachedexpressionevaluator类调用getexpression方法将第二value表达式字符串转换为expression表达式对象(对应第二表达式对象),然后调用getvalue方法获取表达式(对应第二表达式对象)解析后的值即实现了springel表达式的核心解析,即得到的第二解析结果。通过本实施例,实现在不进行日志代码编写的情况下,可以实现获取关于在事件处理内容执行后的审计日志,从而将业务代码和日志代码解耦,进而可以便捷、快速得获取与操作事件对应的审计日志。
84.图6是本发明提供的审计日志记录方法的流程示意图之二。
85.下面将结合图6对本发明提供的另一种审计日志记录方法的过程进行说明。
86.在本发明一示例性实施例中,结合图6可知,审计日志记录方法可以包括步骤610至步骤690,其中,步骤610至步骤660与步骤110至步骤160相同或相似,其具体实施方式和
有益效果请参照前文描述,在本实施例中不再赘述,下面将分别介绍步骤670至步骤690。
87.在步骤670中,基于spring框架下的springboot自动装配与spring框架对应的bean类。
88.在步骤680中,基于bean类,扩展出存储接口。
89.在步骤690中,调用存储接口,将审计日志存储在存储接口。
90.在一种实施例中,可以基于springboot自动装配bean类的config配置类设计,从而可以基于bean类扩展出日志信息的存储接口。在又一种实施例中,还可以采用其他方式自动装配与spring框架对应的bean类。在本实施例中,不对自动装配与spring框架对应的bean类作具体限定。其中,bean类可以@conditionalonmissingbean的方式注册。在应用过程中,可以调用存储接口,将审计日志存储在存储接口。在又一示例中,在基于存储接口存储审计日志后,还可以发送关于审计日志的消息至用户。其中,业务方或组件提供方均可以消费该消息进行存储,业务方还可以对存储接口进行对应的处理,以满足自身需求。
91.图7是本发明提供的审计日志记录方法的流程示意图之三;
92.为了进一步介绍本发明提供的审计日志记录方法,下面将结合图7进行说明。
93.在本发明一示例性实施例中,结合图7可知,审计日志记录方法可以包括步骤710至步骤790,下面将分别介绍各步骤。
94.在步骤710中,自动装配bean。
95.在一种实施例中,可以基于springboot自动装配bean类的config配置类设计,从而可以基于bean类扩展出日志信息的存储接口,用于存储最终得到的与操作事件对应的审计日志。
96.在步骤720中,自定义函数上下文装箱。
97.在步骤730中,基于springaop进行切面拦截。
98.在一种实施例中,可以将确定的自定义函数装箱至与服务操作系统相对应的spring框架的上下文中。进一步的,可以基于springaop对事件处理内容进行切面拦截,以得到事件处理内容的注解式配置。其中,注解式配置可以包括事件处理内容、事件处理内容上配置的日志内容以及事件处理内容的入参等。
99.在步骤740中,将事件处理内容上配置的属性进行分类存储至map,需在事件处理内容执行前解析的map1和需在事件处理内容执行后解析的map2。
100.在一种实施例中,map1中存储有需要在事件处理内容执行前进行解析的第一注解式配置,map2中存储有需要在事件处理内容执行后进行解析的第二注解式配置。
101.在步骤750中,循环map1,将value表达式字符串进行springel表达式解析,得到第一解析结果。
102.在步骤760中,事件处理内容执行。
103.在步骤770中,循环map2,将value表达式字符串进行springel表达式解析,得到第二解析结果。
104.在步骤780中,将解析后的第一解析结果和第二解析结果存储到日志信息对象中。
105.在步骤790中,得到与操作事件对应的审计日志。
106.在一种实施例中,可以在事件处理内容执行前,遍历map1(对应第一虚拟内存),从而可以确保基于springel对各个第一注解式配置进行解析以得到第一解析结果。在应用过
程中,可以将与第一注解式配置对应的第一value表达式字符串进行springel表达式解析,得到第一解析结果。
107.进一步的,还可以在事件处理内容执行后,遍历map2(对应第二虚拟内存),从而可以确保基于springel对各个第二注解式配置进行解析以得到第二解析结果。在应用过程中,可以将与第二注解式配置对应的第二value表达式字符串进行springel表达式解析,得到第二解析结果。
108.再基于第一解析结果和第二解析结果的对应关系,将第一解析结果和第二解析结果进行对应性组合,即可得到最终的解析结果。其中,解析结果与审计日志相对应。通过本实施例,实现了基于配置化方式获取审计日志,从而将业务代码和日志代码解耦,进而可以便捷、快速得获取与操作事件对应的审计日志。
109.根据上述描述可知,本发明提供的审计日志记录方法,通过springaop对事件处理内容进行切面拦截,得到注解式配置,再基于自定义函数,判断事件处理内容的注解式配置需要在事件处理内容执行前进行解析还是在事件处理内容执行后进行解析,并结合springel对注解式配置进行解析,得到解析结果,从而得到与操作事件对应的审计日志。实现了基于配置化方式获取审计日志,从而将业务代码和日志代码解耦,进而可以便捷、快速得获取与操作事件对应的审计日志。
110.基于相同的构思,本发明还提供一种审计日志记录装置。
111.下面对本发明提供的审计日志记录装置进行描述,下文描述的审计日志记录装置与上文描述的审计日志记录方法可相互对应参照。
112.图8是本发明提供的审计日志记录装置的结构示意图。
113.在本发明一示例性实施例中,审计日志记录装置可以应用于应用服务操作系统。审计日志记录装置可以包括第一模块810至第六模块860,下面将分别介绍各模块。
114.第一模块810,可以被配置为用于确定操作事件和事件处理内容,其中,事件处理内容为实现操作事件的代码对应的处理内容;
115.第二模块820,可以被配置为用于确定自定义函数,其中,自定义函数用于确定事件处理内容上的注解式配置在事件处理内容执行前进行解析或者在事件处理内容执行后进行解析;
116.第三模块830,可以被配置为用于将自定义函数装箱至spring框架的上下文,其中,spring框架与应用服务操作系统相对应;
117.第四模块840,可以被配置为用于对事件处理内容进行切面拦截,得到注解式配置;
118.第五模块850,可以被配置为用于基于自定义函数,对注解式配置进行解析,得到解析结果;
119.第六模块860,可以被配置为用于基于解析结果,得到与操作事件对应的审计日志。
120.在本发明一示例性实施例中,第四模块840可以采用以下方式实现对所述事件处理内容进行切面拦截:基于spring框架下的springaop,对事件处理内容进行切面拦截;
121.第五模块850可以采用以下方式实现基于自定义函数,对注解式配置进行解析:基于自定义函数和spring框架下的springel,对注解式配置进行解析。
122.在本发明一示例性实施例中,第五模块850可以采用以下方式实现基于自定义函数和spring框架下的springel,对注解式配置进行解析,得到解析结果:
123.基于自定义函数,对注解式配置进行分类,得到第一注解式配置和第二注解式配置,其中,第一注解式配置为在事件处理内容执行前进行解析的注解式配置,第二注解式配置为在事件处理内容执行后进行解析的注解式配置;
124.在事件处理内容执行前,基于springel,对第一注解式配置进行解析,得到第一解析结果;
125.在事件处理内容执行后,基于springel,对第二注解式配置进行解析,得到第二解析结果;
126.基于第一解析结果和第二解析结果,得到解析结果。
127.在本发明一示例性实施例中,第五模块850还可以被配置为用于:
128.将第一注解式配置存储至第一虚拟内存;
129.将第二注解式配置存储至第二虚拟内存;
130.第五模块850还可以采用以下方式实现在事件处理内容执行前,基于springel,对第一注解式配置进行解析,得到第一解析结果:
131.在事件处理内容执行前,遍历第一虚拟内存,基于springel对第一注解式配置进行解析,得到第一解析结果;
132.第五模块850还可以采用以下方式实现在事件处理内容执行后,基于springel,对第二注解式配置进行解析,得到第二解析结果:
133.在事件处理内容执行后,遍历第二虚拟内存,基于springel对第二注解式配置进行解析,得到第二解析结果。
134.在本发明一示例性实施例中,第五模块850还可以被配置为用于:
135.基于第一注解式配置,得到与第一注解式配置对应的第一属性key值,以及与第一属性key值对应第一value表达式字符串;
136.第五模块850还可以采用以下方式实现基于springel,对第一注解式配置进行解析,得到第一解析结果:
137.基于springel,创建与第一value表达式字符串对应的springel解析的第一入参;
138.基于第一入参,将第一value表达式字符串转换为第一表达式对象;
139.调用语言函数获取第一表达式对象解析后的第一解析值,并将第一解析值作为第一解析结果。
140.在本发明一示例性实施例中,第五模块850还可以被配置为用于:
141.基于第二注解式配置,得到与第二注解式配置对应的第二属性key值,以及与第二属性key值对应第二value表达式字符串;
142.第五模块850还可以采用以下方式实现基于springel,对第二注解式配置进行解析,得到第二解析结果:
143.基于springel,创建与第二value表达式字符串对应的springel解析的第二入参;
144.基于第二入参,将第二value表达式字符串转换为第二表达式对象;
145.调用语言函数获取第二表达式对象解析后的第二解析值,并将第二解析值作为第二解析结果。
146.在本发明一示例性实施例中,第六模块860还可以被配置为用于:
147.基于spring框架下的springboot自动装配与spring框架对应的bean类;
148.基于bean类,扩展出存储接口;
149.调用存储接口,将审计日志存储在存储接口。
150.图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(communications interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行审计日志记录方法,应用于应用服务操作系统,所述方法包括:确定操作事件和事件处理内容,其中,所述事件处理内容为实现所述操作事件的代码对应的处理内容;确定自定义函数,其中,所述自定义函数用于确定所述事件处理内容上的注解式配置在所述事件处理内容执行前进行解析或者在所述事件处理内容执行后进行解析;将所述自定义函数装箱至spring框架的上下文,其中,所述spring框架与所述应用服务操作系统相对应;对所述事件处理内容进行切面拦截,得到所述注解式配置;基于所述自定义函数,对所述注解式配置进行解析,得到解析结果;基于所述解析结果,得到与所述操作事件对应的审计日志。
151.此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
152.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的审计日志记录方法,应用于应用服务操作系统,所述方法包括:确定操作事件和事件处理内容,其中,所述事件处理内容为实现所述操作事件的代码对应的处理内容;确定自定义函数,其中,所述自定义函数用于确定所述事件处理内容上的注解式配置在所述事件处理内容执行前进行解析或者在所述事件处理内容执行后进行解析;将所述自定义函数装箱至spring框架的上下文,其中,所述spring框架与所述应用服务操作系统相对应;对所述事件处理内容进行切面拦截,得到所述注解式配置;基于所述自定义函数,对所述注解式配置进行解析,得到解析结果;基于所述解析结果,得到与所述操作事件对应的审计日志。
153.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的审计日志记录方法,应用于应用服务操作系统,所述方法包括:确定操作事件和事件处理内容,其中,所述事件处理内容为实现所述操作事件的代码对应的处理内容;确定自定义函数,其中,所述自定义函数用于确定所述事件处理内容上的注解式配置在所述事件处理内容执行前进行解析或者在所述事件处理内容执行后进行解析;将所述自定义函数装箱至spring框架的上下文,其中,
所述spring框架与所述应用服务操作系统相对应;对所述事件处理内容进行切面拦截,得到所述注解式配置;基于所述自定义函数,对所述注解式配置进行解析,得到解析结果;基于所述解析结果,得到与所述操作事件对应的审计日志。
154.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
155.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
156.进一步可以理解的是,本发明实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
157.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种审计日志记录方法,其特征在于,应用于应用服务操作系统,所述方法包括:确定操作事件和事件处理内容,其中,所述事件处理内容为实现所述操作事件的代码对应的处理内容;确定自定义函数,其中,所述自定义函数用于确定所述事件处理内容上的注解式配置在所述事件处理内容执行前进行解析或者在所述事件处理内容执行后进行解析;将所述自定义函数装箱至spring框架的上下文,其中,所述spring框架与所述应用服务操作系统相对应;对所述事件处理内容进行切面拦截,得到所述注解式配置;基于所述自定义函数,对所述注解式配置进行解析,得到解析结果;基于所述解析结果,得到与所述操作事件对应的审计日志。2.根据权利要求1所述的审计日志记录方法,其特征在于,所述对所述事件处理内容进行切面拦截,具体包括:基于所述spring框架下的springaop,对所述事件处理内容进行切面拦截;所述基于所述自定义函数,对所述注解式配置进行解析,具体包括:基于所述自定义函数和所述spring框架下的springel,对所述注解式配置进行解析。3.根据权利要求2所述的审计日志记录方法,其特征在于,所述基于所述自定义函数和所述spring框架下的springel,对所述注解式配置进行解析,得到解析结果,具体包括:基于所述自定义函数,对所述注解式配置进行分类,得到第一注解式配置和第二注解式配置,其中,所述第一注解式配置为在所述事件处理内容执行前进行解析的注解式配置,所述第二注解式配置为在所述事件处理内容执行后进行解析的注解式配置;在所述事件处理内容执行前,基于所述springel,对所述第一注解式配置进行解析,得到第一解析结果;在所述事件处理内容执行后,基于所述springel,对所述第二注解式配置进行解析,得到第二解析结果;基于所述第一解析结果和所述第二解析结果,得到所述解析结果。4.根据权利要求3所述的审计日志记录方法,其特征在于,在所述基于所述自定义函数,对所述注解式配置进行分类,得到第一注解式配置和第二注解式配置之后,所述方法还包括:将所述第一注解式配置存储至第一虚拟内存;将所述第二注解式配置存储至第二虚拟内存;所述在所述事件处理内容执行前,基于所述springel,对所述第一注解式配置进行解析,得到第一解析结果,具体包括:在所述事件处理内容执行前,遍历所述第一虚拟内存,基于所述springel对所述第一注解式配置进行解析,得到第一解析结果;所述在所述事件处理内容执行后,基于所述springel,对所述第二注解式配置进行解析,得到第二解析结果,具体包括:在所述事件处理内容执行后,遍历所述第二虚拟内存,基于所述springel对所述第二注解式配置进行解析,得到第二解析结果。5.根据权利要求3所述的审计日志记录方法,其特征在于,在所述基于所述自定义函
数,对所述注解式配置进行分类,得到第一注解式配置和第二注解式配置之后,所述方法还包括:基于所述第一注解式配置,得到与所述第一注解式配置对应的第一属性key值,以及与所述第一属性key值对应第一value表达式字符串;所述基于所述springel,对所述第一注解式配置进行解析,得到第一解析结果,具体包括:基于所述springel,创建与所述第一value表达式字符串对应的springel解析的第一入参;基于所述第一入参,将所述第一value表达式字符串转换为第一表达式对象;调用语言函数获取所述第一表达式对象解析后的第一解析值,并将所述第一解析值作为所述第一解析结果。6.根据权利要求3或5所述的审计日志记录方法,其特征在于,在所述基于所述自定义函数,对所述注解式配置进行分类,得到第一注解式配置和第二注解式配置之后,所述方法还包括:基于所述第二注解式配置,得到与所述第二注解式配置对应的第二属性key值,以及与所述第二属性key值对应第二value表达式字符串;所述基于所述springel,对所述第二注解式配置进行解析,得到第二解析结果,具体包括:基于所述springel,创建与所述第二value表达式字符串对应的springel解析的第二入参;基于所述第二入参,将所述第二value表达式字符串转换为第二表达式对象;调用语言函数获取所述第二表达式对象解析后的第二解析值,并将所述第二解析值作为所述第二解析结果。7.根据权利要求1所述的审计日志记录方法,其特征在于,在所述基于所述解析结果,得到与所述操作事件对应的审计日志之后,所述方法还包括:基于所述spring框架下的springboot自动装配与所述spring框架对应的bean类;基于所述bean类,扩展出存储接口;调用所述存储接口,将所述审计日志存储在所述存储接口。8.一种审计日志记录装置,其特征在于,应用于应用服务操作系统,所述装置包括:第一模块,用于确定操作事件和事件处理内容,其中,所述事件处理内容为实现所述操作事件的代码对应的处理内容;第二模块,用于确定自定义函数,其中,所述自定义函数用于确定所述事件处理内容上的注解式配置在所述事件处理内容执行前进行解析或者在所述事件处理内容执行后进行解析;第三模块,用于将所述自定义函数装箱至spring框架的上下文,其中,所述spring框架与所述应用服务操作系统相对应;第四模块,用于对所述事件处理内容进行切面拦截,得到所述注解式配置;第五模块,用于基于所述自定义函数,对所述注解式配置进行解析,得到解析结果;第六模块,用于基于所述解析结果,得到与所述操作事件对应的审计日志。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的审计日志记录方法。10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的审计日志记录方法。

技术总结
本发明提供一种审计日志记录方法、装置、电子设备及存储介质,应用于应用服务操作系统,所述方法包括:确定操作事件和事件处理内容,其中,事件处理内容为实现操作事件的代码对应的处理内容;确定自定义函数,其中,自定义函数用于确定事件处理内容上的注解式配置在事件处理内容执行前进行解析或者在事件处理内容执行后进行解析;将自定义函数装箱至Spring框架的上下文,其中,Spring框架与应用服务操作系统相对应;对事件处理内容进行切面拦截,得到注解式配置;基于自定义函数,对注解式配置进行解析,得到解析结果;基于解析结果,得到与操作事件对应的审计日志。实现了可以便捷、快速得获取与操作事件对应的审计日志。快速得获取与操作事件对应的审计日志。快速得获取与操作事件对应的审计日志。


技术研发人员:运高帅 王敦杰
受保护的技术使用者:贝壳找房(北京)科技有限公司
技术研发日:2023.03.10
技术公布日:2023/7/26
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐