当前位置: 首页 > news >正文

提供操作日志、审计日志解决方案思路

操作日志

现在大部分公司一般使用SpringCloud这条技术栈,操作日志通过网关Gateway提供的Globalfilter统一拦截请求解析请求是比较好的选选择。

优点:相对于传统的过滤器、拦截器同步阻塞方案,SpringCloud Gateway使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架,提高了性能。

缺点:请求的解析与传统过滤器、拦截器有所不同,特别是获取请求参数与响应参数这块。

具体方案:在Globalfilter初始化时将需要拦截的路径加载到内存当中,解析请求和响应后构建日志实体,通过mq发送到消息队列,再通过mq监听器将数据落库。拦截路径和一些描述信息可配合swagger api来配置。

虽然请求和响应是异步,但是经过实践,一个Globalfilter就可以完成请求与响应参数的解析。思路是在请求时请求头解析和设置参数,响应时构建日志实体发送mq。

细节补充:注意请求头中直接设置中文会乱码,需要在网关编码和使用的地方解码。请求和响应流是一次性的,获取后需要重新构建,可自行搜索方案。响应流处理有不同方式,区别在于适用大量数据还是少量数据的返回,大量数据这种方式会对DataBuffer进行拼接,可避免少量中文乱码问题。

审计日志

审计日志与使用的数据持久层框架有关,如果使用mybatis,就可以通过mybatis拦截器来实现。方案是解析查询语句,将审计变更前数据缓存到redis,并根据登录token过期时长设置过期时间。拦截修改、逻辑删除等入参以及sql语句,通过入参及sql语句解析,去redis拿到变更前以及参数中变更后的数据生成审计日志实体,发送到mq指定队列,再通过mq监听消息落库。

优点:相对传统的注解解析方案,基本无业务侵入,并且数据库压力减小(无需查询变更前数据)。

缺点:审计粒度不够,对于关联id、状态字段这种,如果需要审计,仍需定制化一些逻辑。风险稍高,mybatis拦截器会对整个系统的sql进行了拦截,解析sql以及参数等需要谨慎实现。对于Mapper.xml定义的一些复杂的查询,不好处理。

细节补充:页面增、删、改基本是在查询后操作,这是方案可行的根本原因。审计字段来源为自己配置,存储方案自己选择,可在mybatis拦截器初始化是放到内存中;格式为系统标识-表名-字段名-id:数据。对于新增、删除这种如果要审计直接去redis拿数据即可。逻辑删除这种只有id参数的通过sql解析出表名扫描映射实体的包,获取字段信息,通过当前系统、表名、字段名、id信息再去redis拿数据即可。

具体代码实现暂不便透露。

http://www.lryc.cn/news/364431.html

相关文章:

  • 选择富唯智能的可重构装配系统,就是选择了一个可靠的合作伙伴
  • echarts tooltip太多显示问题解决方案
  • 【control_manager】无法加载,gazebo_ros2_control 0.4.8,机械臂乱飞
  • 深入对比:Transformer与LSTM的详细解析
  • lsof 命令
  • F5G城市光网,助力“一网通城”筑基数字中国
  • Ownips+Coze海外社媒数据分析实战指南
  • C#操作MySQL从入门到精通(10)——对查询数据进行通配符过滤
  • 厘米级精确定位,开启定位技术新时代
  • docker 存储 网络 命令
  • 【MATLAB源码-第222期】基于matlab的改进蚁群算法三维栅格地图路径规划,加入精英蚁群策略。包括起点终点,障碍物,着火点,楼梯。
  • 百度ERNIE系列预训练语言模型浅析(4)-总结篇
  • Ubuntu 20.04 LTS配置JDK、Git
  • 外汇天眼:Marqeta加速欧洲业务发展,华沙办公室正式开幕
  • 使用【AliceCarousel】实现轮播功能
  • 全屋智能的本质是低成本的重构
  • 开发一个comfyui的自定义节点-支持输入中文prompt
  • 代码随想录第二十九天打卡| 491.递增子序列,46.全排列,47.全排列 II
  • 音频数据上的会话情感分析
  • 算法金 | 一文读懂K均值(K-Means)聚类算法
  • 江协科技STM32学习-1 购买24Mhz采样逻辑分析仪
  • 支付系统-业务账单
  • AI引领天文新篇章:中科院发现107例中性碳吸收线,揭示宇宙深邃奥秘
  • python 删除pdf 空白页
  • flutter as连接网易模拟器
  • fpga控制dsp6657上电启动配置
  • Tomcat启动闪退问题解决方法
  • 【多模态】34、LLaVA-v1.5 | 微软开源,用极简框架来实现高效的多模态 LMM 模型
  • 文件编码概念
  • uni-app(优医咨询)项目实战 - 第7天