# 《高性能脱敏组件》拓展设计-第01节:高性能脱敏数据组件拓展实现日志脱敏

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★★☆☆☆
  • 本章重点:基于高性能脱敏组件的通用脱敏方法对日志脱敏进行拓展设计和实现,从全局角度掌握高性能脱敏组件对敏感信息和隐私数据脱敏的核心设计思路和设计方法。重点掌握通用中间件项目的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

大家好,我是冰河~~

高性能脱敏组件最基础和最核心的功能就是对敏感信息和隐私数据进行脱敏,将数据中的敏感信息和隐私数据脱敏成指定的字符,以免对敏感信息和隐私数据造成泄露。 高性能脱敏组件提供了三种接入方式:通用方法接入、注解方式接入和日志方式接入

目前已经实现了通过通用方法和注解方式接入高性能脱敏组件的功能,接下来,就基于高性能脱敏组件的通用脱敏方法对日志脱敏进行拓展设计和实现。

# 一、前言

在需求设计篇章,我们梳理了为何学习高性能脱敏组件,阐述了高性能脱敏组件的目标与挑战,对设计高性能脱敏组件面对的挑战给出了详细的应对方案,并且从功能性需求和非功能性需求等方面详细梳理了高性能脱敏组件的需求。

在架构设计篇章,详细阐述了高性能脱敏组件的方案目标、技术选型和总体架构设计。并且对高性能脱敏组件的通用化落地方案进行了简单的说明。

在脱敏设计篇章,我们已经对高性能脱敏组件进行了编码设计和实现,目前,已经对注解、接口与顶层抽象类进行了设计和实现,同时,对高性能脱敏组件的通用脱敏方法和注解的通用解析逻辑以及内置的各种常见数据脱敏器进行了设计和实现。

可以说,截止到目前,我们已经完成了高性能脱敏组件最基础与最核心的功能,并且完成了通过通用方法和注解方式接入高性能脱敏组件的功能,接下来,就基于高性能脱敏组件的通用脱敏方法对日志脱敏进行拓展设计和实现。

# 二、本节诉求

基于高性能脱敏组件的通用脱敏方法对日志脱敏进行拓展设计和实现,从全局角度掌握高性能脱敏组件对敏感信息和隐私数据脱敏的核心设计思路和设计方法。重点掌握通用中间件项目的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

# 三、核心类设计

基于高性能脱敏组件的通用脱敏方法拓展日志脱敏的核心类设计如图1-1所示。


可以看到,在基于高性能脱敏组件的通用脱敏方法拓展日志脱敏时,主要由ShieldMessageConverter类实现。ShieldMessageConverter类会继承logback中的MessageConverter类,并覆写MessageConverter类的convert()方法。在convert()方法中,调用ReflectUtils类的通用脱敏方法完成对日志信息的脱敏处理。

注意:本节只给大家展示基于高性能脱敏组件的通用脱敏方法拓展日志脱敏的核心类实现关系,其他代码的实现细节,大家可以自行到本节对应的源码分支进行查看,这里不再赘述。

# 四、编码实现

本节的编码实现比较简单,主要是实现日志脱敏类ShieldMessageConverter,并自定义日志配置文件。

(1)实现ShieldMessageConverter类

ShieldMessageConverter类是基于高性能脱敏组件的通用脱敏方法拓展日志脱敏的实现类。

源码详见:io.binghe.framework.shield.logback.ShieldMessageConverter。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章、小册、视频与完整代码