Class ConfigValueMasker

java.lang.Object
io.leandev.appfuse.env.ConfigValueMasker

public final class ConfigValueMasker extends Object

設定屬性值的遮蔽規則——「什麼算敏感」的單一事實來源。

兩個消費端共用,避免各自定義判準而漂移:

  • Environ 啟動時把設定快照輸出到日誌
  • ConfigurationDiagnostics 產生 actuator 組態快照

判準以屬性名為準:名稱含敏感詞即整值遮蔽(不看值的形狀,避免誤判); 另對 URL/URI 中內嵌的帳密做局部遮蔽,因為連線字串的名稱本身不含敏感詞、 密碼卻可能寫在裡面。

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    遮蔽後的替代字串。
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    判斷屬性名是否敏感(含 password / secret / token / credential / key,不分大小寫)。
    static Object
    mask(String name, Object value)
    依屬性名遮蔽值:名稱敏感則整值遮蔽;名稱像 URL/URI 則遮蔽內嵌帳密;其餘原樣回傳。
    static String
    遮蔽 URL 中的 password= 查詢參數與 //user:pass@ userinfo。

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Method Details

    • isSensitive

      public static boolean isSensitive(String name)
      判斷屬性名是否敏感(含 password / secret / token / credential / key,不分大小寫)。
      Parameters:
      name - 屬性名,可為 null
      Returns:
      名稱敏感則 true
    • mask

      public static Object mask(String name, Object value)
      依屬性名遮蔽值:名稱敏感則整值遮蔽;名稱像 URL/URI 則遮蔽內嵌帳密;其餘原樣回傳。
      Parameters:
      name - 屬性名
      value - 屬性值,可為 null
      Returns:
      遮蔽後的值(null 原樣回傳)
    • maskUrl

      public static String maskUrl(String url)
      遮蔽 URL 中的 password= 查詢參數與 //user:pass@ userinfo。
      Parameters:
      url - 連線字串,可為 null
      Returns:
      遮蔽後的字串(null 原樣回傳)