一种基于注解的Java项目审计日志实现方法及装置与流程

未命名 08-05 阅读:102 评论:0

一种基于注解的java项目审计日志实现方法及装置
技术领域
1.本发明涉及java项目领域,具体提供一种基于注解的java项目审计日志实现方法及装置。


背景技术:

2.在进行对安全要求很高的项目研发时,根据安全审计的要求,需要对重要的用户行为和重要安全事件进行审计,审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息,这些关键事件的记录常常采用日志的方式进行。
3.所以在业务代码中常常包含一些记录日志的部分。对于复杂的业务系统来说,在代码中通过编码式的方式记录日志不仅会让代码看起来不清晰,而且需要大量的人力和重复性工作。


技术实现要素:

4.本发明是针对上述现有技术的不足,提供一种实用性强的基于注解的java项目审计日志实现方法。
5.本发明进一步的技术任务是提供一种设计合理,安全适用的基于注解的java项目审计日志实现装置。
6.本发明解决其技术问题所采用的技术方案是:
7.一种基于注解的java项目审计日志实现方法,根据日志所处的触发点,选取相应的通知方式进行切面处理;
8.具有如下步骤:
9.s1、自定义注解定制化日志的要素;
10.s2、编写aspectj通知注解方法的具体实现逻辑;
11.s3、在所需记录审计日志的controller层的对应方法上添加自定义注解,并设置注解中的相关属性。
12.进一步的,在步骤s1中,自定义注解定制化日志的要素包括操作类型、操作描述和所属业务模块,其中,操作描述即日志的核心内容通过spel表达式来对方法参数进行引用,之后通过对spel表达式解析通过反射技术进行动态替换。
13.进一步的,在步骤s2中,编写aspectj通知注解方法的具体实现逻辑,如果方法执行成功审计日志记录内容及实现方式;如果方法执行失败审计日志记录内容及实现方式。
14.进一步的,请求有效返回处理逻辑,步骤如下:
15.(1)通过解析logaudit.desc()中的spel表达式;
16.(2)通过joinpoint对象,利用反射技术获取参数内容,形成日志描述内容;
17.(3)通过token或者session获取当前操作人;
18.(4)把当前系统时间作为操作时间;
19.(5)通过本系统的日志记录方式记录日志内容、操作人和操作时间。
20.进一步的,请求异常处理时,步骤为:
21.(1)通过解析logaudit.desc()中的spel表达式,e.getmessage()获得异常信息;
22.(2)通过joinpoint对象,利用反射技术获取参数内容,形成日志描述内容;
23.(3)通过token或者session获取当前操作人;
24.(4)把当前系统时间作为操作时间;
25.(5)通过本系统的日志记录方式记录日志内容、操作人和操作时间。
26.进一步的,通过步骤s1、步骤s2和步骤s3配置之后,在触发新增用户的请求/user/add之后,如果程序没有发生异常就会执行logauditaspect类中doafterreturning方法中配置的请求有效返回处理逻辑,记录响应成功的日志;
27.如果程序发生异常就会执行logauditaspect类中doafterthrowing方法中配置的请求异常处理逻辑,记录响应失败的日志。
28.进一步的,最终,通过在controller层的方法上添加自定义注解@logaudit,实现了业务代码和审计日志记录的代码分离。
29.一种基于注解的java项目审计日志实现装置,包括:至少一个存储器和至少一个处理器;
30.所述至少一个存储器,用于存储机器可读程序;
31.所述至少一个处理器,用于调用所述机器可读程序,执行一种基于注解的java项目审计日志实现方法。
32.本发明的一种基于注解的java项目审计日志实现方法及装置和现有技术相比,具有以下突出的有益效果:
33.本发明可方便且统一地对审计记录应包括的事件日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息进行处理,既降低了各业务模块通过编码式记录日志的复杂度和工作量,又便于规范化管理日志内容及进行后续处理。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.附图1是一种基于注解的java项目审计日志实现方法的流程示意图。
具体实施方式
36.为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
37.下面给出一个最佳实施例:
38.如图1所示,本实施例中的一种基于注解的java项目审计日志实现方法,根据日志所处的触发点,选取相应的通知方式进行切面处理;
39.具有如下步骤:
40.s1、自定义注解定制化日志的要素;
41.定义自定义注解以进一步定制化日志的要素,包括但不限于操作类型、操作描述、所属业务模块等。其中操作描述即日志的核心内容可以通过spel表达式来对方法参数进行引用,之后通过对spel表达式解析可以通过反射技术进行动态替换。
42.s2、编写aspectj通知注解方法的具体实现逻辑;
43.编写aspectj通知注解方法的具体实现逻辑,如方法执行成功审计日志记录内容及实现方式,方法执行失败审计日志记录内容及实现方式;
44.请求有效返回处理时,
45.(1)通过解析logaudit.desc()中的spel表达式;
46.(2)通过joinpoint对象,利用反射技术获取参数内容,形成日志描述内容;
47.(3)通过token或者session获取当前操作人;
48.(4)把当前系统时间作为操作时间;
49.(5)通过本系统的日志记录方式记录日志内容、操作人和操作时间。
50.请求异常处理时,步骤为:
51.(1)通过解析logaudit.desc()中的spel表达式,e.getmessage()获得异常信息;
52.(2)通过joinpoint对象,利用反射技术获取参数内容,形成日志描述内容;
53.(3)通过token或者session获取当前操作人;
54.(4)把当前系统时间作为操作时间;
55.(5)通过本系统的日志记录方式记录日志内容、操作人和操作时间。
56.s3、在所需记录审计日志的controller层的对应方法上添加自定义注解,并设置注解中的相关属性。
57.通过上述配置之后,在触发新增用户的请求/user/add之后,如果程序没有发生异常就会执行logauditaspect类中doafterreturning方法中配置的请求有效返回处理逻辑,记录响应成功的日志,如果程序发生异常就会执行logauditaspect类中doafterthrowing方法中配置的请求异常处理逻辑,记录响应失败的日志。
58.最终,通过在controller层的方法上添加自定义注解@logaudit,从而实现了业务代码和审计日志记录的代码分离,既降低了各业务模块通过编码式记录日志的复杂度和工作量,又便于规范化管理日志内容及进行后续处理。
59.基于上述方法,本实施了中的一种基于注解的java项目审计日志实现装置,包括:至少一个存储器和至少一个处理器;
60.所述至少一个存储器,用于存储机器可读程序;
61.所述至少一个处理器,用于调用所述机器可读程序,执行一种基于注解的java项目审计日志实现方法。
62.上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种基于注解的java项目审计日志实现方法及装置权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
63.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以
理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术特征:
1.一种基于注解的java项目审计日志实现方法,其特征在于,根据日志所处的触发点,选取相应的通知方式进行切面处理;具有如下步骤:s1、自定义注解定制化日志的要素;s2、编写aspectj通知注解方法的具体实现逻辑;s3、在所需记录审计日志的controller层的对应方法上添加自定义注解,并设置注解中的相关属性。2.根据权利要求1所述的一种基于注解的java项目审计日志实现方法,其特征在于,在步骤s1中,自定义注解定制化日志的要素包括操作类型、操作描述和所属业务模块,其中,操作描述即日志的核心内容通过spel表达式来对方法参数进行引用,之后通过对spel表达式解析通过反射技术进行动态替换。3.根据权利要求2所述的一种基于注解的java项目审计日志实现方法,其特征在于,在步骤s2中,编写aspectj通知注解方法的具体实现逻辑,如果方法执行成功审计日志记录内容及实现方式;如果方法执行失败审计日志记录内容及实现方式。4.根据权利要求3所述的一种基于注解的java项目审计日志实现方法,其特征在于,请求有效返回处理逻辑,步骤如下:(1)通过解析logaudit.desc()中的spel表达式;(2)通过joinpoint对象,利用反射技术获取参数内容,形成日志描述内容;(3)通过token或者session获取当前操作人;(4)把当前系统时间作为操作时间;(5)通过本系统的日志记录方式记录日志内容、操作人和操作时间。5.根据权利要求4所述的一种基于注解的java项目审计日志实现方法,其特征在于,请求异常处理时,步骤为:(1)通过解析logaudit.desc()中的spel表达式,e.getmessage()获得异常信息;(2)通过joinpoint对象,利用反射技术获取参数内容,形成日志描述内容;(3)通过token或者session获取当前操作人;(4)把当前系统时间作为操作时间;(5)通过本系统的日志记录方式记录日志内容、操作人和操作时间。6.根据权利要求5所述的一种基于注解的java项目审计日志实现方法,其特征在于,通过步骤s1、步骤s2和步骤s3配置之后,在触发新增用户的请求/user/add之后,如果程序没有发生异常就会执行logauditaspect类中doafterreturning方法中配置的请求有效返回处理逻辑,记录响应成功的日志;如果程序发生异常就会执行logauditaspect类中doafterthrowing方法中配置的请求异常处理逻辑,记录响应失败的日志。7.根据权利要求6所述的一种基于注解的java项目审计日志实现方法,其特征在于,最终,通过在controller层的方法上添加自定义注解@logaudit,实现了业务代码和审计日志记录的代码分离。8.一种基于注解的java项目审计日志实现装置,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至7中任一所述的方法。

技术总结
本发明涉及Java项目领域,具体提供了一种基于注解的Java项目审计日志实现方法及装置,根据日志所处的触发点,选取相应的通知方式进行切面处理;具有如下步骤:S1、自定义注解定制化日志的要素;S2、编写AspectJ通知注解方法的具体实现逻辑;S3、在所需记录审计日志的Controller层的对应方法上添加自定义注解,并设置注解中的相关属性。与现有技术相比,本发明可方便且统一地对审计记录应包括的事件日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息进行处理,既降低了各业务模块通过编码式记录日志的复杂度和工作量,又便于规范化管理日志内容及进行后续处理。于规范化管理日志内容及进行后续处理。于规范化管理日志内容及进行后续处理。


技术研发人员:韩晓龙 张海伦
受保护的技术使用者:浪潮软件集团有限公司
技术研发日:2023.05.04
技术公布日:2023/8/4
版权声明

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

飞行汽车 https://www.autovtol.com/

分享:

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

相关推荐