DBScript: simpler removal of password info
authorMarko Kreen <markokr@gmail.com>
Wed, 7 Dec 2011 11:33:30 +0000 (13:33 +0200)
committerMarko Kreen <markokr@gmail.com>
Wed, 7 Dec 2011 11:33:30 +0000 (13:33 +0200)
PG connect strings can be quite free-form.
So remove everything after 'password'.

python/skytools/scripting.py

index 4d9b1f8f50230307a71c79becd417c16bc1ccf8b..558998c23e78d3055d9afbc258f53b2f2457e649 100644 (file)
@@ -3,7 +3,7 @@
 
 """
 
-import sys, os, signal, optparse, time, errno, select, re
+import sys, os, signal, optparse, time, errno, select
 import logging, logging.handlers, logging.config
 
 import skytools
@@ -722,8 +722,13 @@ class DBScript(BaseScript):
         else:
             if not connstr:
                 connstr = self.cf.get(dbname)
+
             # connstr might contain password, it is not a good idea to log it
-            filtered_connstr = re.sub(' password=\S+', ' password=***HIDDEN***', connstr)
+            filtered_connstr = connstr
+            pos = connstr.lower().find('password')
+            if pos >= 0:
+                filtered_connstr = connstr[:pos] + ' [...]'
+
             self.log.debug("Connect '%s' to '%s'" % (cache, filtered_connstr))
             dbc = DBCachedConn(cache, connstr, params['max_age'], setup_func = self.connection_hook)
             self.db_cache[cache] = dbc