diff --git a/src/migratus/utils.clj b/src/migratus/utils.clj index 9ee0c10..d3d19ad 100644 --- a/src/migratus/utils.clj +++ b/src/migratus/utils.clj @@ -87,11 +87,18 @@ [^String s] (str/replace s "\\" "/")) -(defn censor-password - "Show only first character of password if given db-spec has password" +(defmulti censor-password class) + +(defmethod censor-password String [uri] + (if (empty? uri) + "" + "uri-censored")) + +(defmethod censor-password :default [{:keys [password] :as db-spec}] (if (empty? password) db-spec + ;; Show only first character of password if given db-spec has password (assoc db-spec :password (str (subs password 0 (min 1 (count password))) "")))) diff --git a/test/migratus/test/utils.clj b/test/migratus/test/utils.clj index fdae7aa..0268691 100644 --- a/test/migratus/test/utils.clj +++ b/test/migratus/test/utils.clj @@ -7,4 +7,6 @@ (is (= "" (censor-password ""))) (is (= {:password nil} (censor-password {:password nil}))) (is (= {:password "1" :user "user"} - (censor-password {:password "1234" :user "user"})))) + (censor-password {:password "1234" :user "user"}))) + (is (= "uri-censored" + (censor-password "jdbc:postgresql://fake.rds.amazonaws.com/capital_thing?user=capital_db&password=thisIsNot123ARealPass"))))