<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Logback和slf4j的日志脫敏組件 ## 前言 對于日志脫敏的方式有很多,常見的有①使用conversionRule標簽,繼承MessageConverter②書寫一個脫敏工具類,在打印日志的時候對特定特字段進行脫敏返回。 兩種方式各有優缺點:第一種方式需要修改代碼,不符合開閉原則。第二種方式,需要在日志方法的參數進行脫敏,對原生日志有入侵行為。 ## 本組件說明 本組件基于非入侵及脫敏字段擴展考慮,采用yml配置文件來擴展脫敏字段及不同的脫敏規則。其核心思想就是:讀取配置文件里的脫敏字段和其脫敏規則。在日志替換的時候將字段進行脫敏。 本組件基于logback+slf4j,暫不支持log4j,如需解決log4j的日志,可以參照本組件的思想去完成。 本組件支持的脫敏數據類型:八大基本類型及其包裝類型、String類型、Map、List、JSON字符串、項目中的POJO對象。 注:Map、JSON、List、POJO、List對象的脫敏處理需要配置其對應的字段名即可,無法處理List類型。 在使用本組件的時候,一定要注重日志打印規范。 具體使用方式見博客(重要!重要!重要!):https://blog.csdn.net/qq\_40885085/article/details/113385261 ## 匹配規則: key + 分割符 + value,如phone:{},即phone:13436781234。如email={},即email=123456789@qq.com 本組件默認只支持冒號和等號分割,如需其他方式可以修改正則匹配方式(本組件的正則匹配是匹配的key:value和key=value) 如: ```java log.info("your email:{}, your phone:{}", "123456789@qq.com","15310763497"); log.info("your email={}, your cellphone={}", "123456789@qq.com","15310763497"); ``` ## 使用方式 1、在logback-spring.xml同級新增logback-desensitize.yml配置 logback-desensitize.yml配置示例 ``` # 日志脫敏 log-desensitize: # 是否忽略大小寫匹配,默認為true ignore: true # 是否開啟脫敏,默認為false open: true # pattern下的key/value為固定脫敏規則 pattern: # 郵箱 - @前第4-7位脫敏 email: "@>(4,7)" # qq郵箱 - @后1-3位脫敏 qqemail: "@<(1,3)" # 姓名 - 姓脫敏,如*杰倫 name: 1,1 # 密碼 - 所有需要完全脫敏的都可以使用內置的password password: password patterns: # 身份證號,key后面的字段都可以匹配以下規則(用逗號分隔) - key: identity,idcard # 定義規則的標識 custom: # defaultRegex表示使用組件內置的規則:identity表示身份證號 - 內置的18/15位 - defaultRegex: identity position: 9,13 # 內置的other表示如果其他規則都無法匹配到,則按該規則處理 - defaultRegex: other position: 9,10 # 電話號碼,key后面的字段都可以匹配以下規則(用逗號分隔) - key: phone,cellphone,mobile custom: # 手機號 - 內置的11位手機匹配規則 - defaultRegex: phone position: 4,7 # 自定義正則匹配表達式:座機號(帶區號,號碼七位|八位) - customRegex: "^0[0-9]{2,3}-[0-9]{7,8}" # -后面的1-4位脫敏 position: "-<(1,4)" # 自定義正則匹配表達式:座機號(不帶區號) - customRegex: "^[0-9]{7,8}" position: 3,5 # 內置的other表示如果其他規則都無法匹配到,則按該規則處理 - defaultRegex: other position: 1,3 # 這種方式不太推薦 - 一旦匹配不上,就不會脫敏 - key: localMobile custom: customRegex: "^0[0-9]{2,3}-[0-9]{7,8}" position: 1,3 ``` > 自定義脫敏支持的方式 > 1、key:value的方式 > phone:4,7,表示phone屬性的4-7位進行脫敏 > 原始數據:13610357861 > 脫敏后:136****7861 > > 2、以符號作為起始、結束節點作為脫敏標志 > emai:"@>(4,7)",@為脫敏標志,>表示其為結束節點,<表示其為開始節點。即@>表示對@之前的進行脫敏,@<表示對@之后的進行脫敏。這個示例就是@前的數據的第4-7位進行脫敏。注意:這種規則里的雙引號、括號不能省略,其次:和=不能作為標志符號,因為和匹配規則有沖突 > 原始數據:123456789@qq.com > "@>(4,7)"脫敏后:123****89@qq.com > "@<(1,3)"脫敏后:123456789@***com > 2、在logback.xml中引入對應的Appender,使用組件里的類代替原來的 #### ①ConsoleAppender - 控制臺脫敏 原配置類: ```java ch.qos.logback.core.ConsoleAppender ``` 替換類: ```java pers.liuchengyin.logbackadvice.LcyConsoleAppender ``` #### ②RollingFileAppender - 滾動文件 原配置類: ```java ch.qos.logback.core.rolling.RollingFileAppender ``` 替換類: ```java pers.liuchengyin.logbackadvice.LcyRollingFileAppender ``` #### ③FileAppender - 文件 原配置類: ```java ch.qos.logback.core.FileAppender ``` 替換類: ```java pers.liuchengyin.logbackadvice.LcyFileAppender ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看