remove password from conn URLs, fixes #157

This commit is contained in:
Friedrich Lindenberg 2016-02-12 17:58:55 +01:00
parent d460e7ca55
commit c45b98d862
2 changed files with 12 additions and 2 deletions

View File

@ -16,7 +16,7 @@ from alembic.migration import MigrationContext
from alembic.operations import Operations from alembic.operations import Operations
from dataset.persistence.table import Table from dataset.persistence.table import Table
from dataset.persistence.util import ResultIter, row_type from dataset.persistence.util import ResultIter, row_type, safe_url
from dataset.util import DatasetException from dataset.util import DatasetException
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -281,4 +281,4 @@ class Database(object):
row_type=self.row_type) row_type=self.row_type)
def __repr__(self): def __repr__(self):
return '<Database(%s)>' % self.url return '<Database(%s)>' % safe_url(self.url)

View File

@ -1,4 +1,5 @@
from datetime import datetime from datetime import datetime
import urlparse
try: try:
from collections import OrderedDict from collections import OrderedDict
@ -76,3 +77,12 @@ class ResultIter(object):
def __iter__(self): def __iter__(self):
return self return self
def safe_url(url):
""" Remove password from printed connection URLs. """
parsed = urlparse.urlparse(url)
if parsed.password is not None:
pwd = ':%s@' % parsed.password
url = url.replace(pwd, ':*****@')
return url