Mercurial > public > mercurial-scm > hg-stable
diff mercurial/util.py @ 5798:86f5d8f608b7
fetch: hide authentication details
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Fri, 04 Jan 2008 11:58:27 -0800 |
parents | 0145f9afb0e7 |
children | d852151fb8d4 |
line wrap: on
line diff
--- a/mercurial/util.py Fri Jan 04 11:52:24 2008 -0800 +++ b/mercurial/util.py Fri Jan 04 11:58:27 2008 -0800 @@ -1707,32 +1707,14 @@ # Avoid double backslash in Windows path repr() return repr(s).replace('\\\\', '\\') -def hidepassword(url): - '''replaces the password in the url string by three asterisks (***) +def hidepassword(url, user=True, password=True): + '''hide user credential in a url string''' + scheme, netloc, path, params, query, fragment = urlparse.urlparse(url) + netloc = re.sub('([^:]*):([^@]*)@(.*)', r'\1:***@\3', netloc) + return urlparse.urlunparse((scheme, netloc, path, params, query, fragment)) - >>> hidepassword('http://www.example.com/some/path#fragment') - 'http://www.example.com/some/path#fragment' - >>> hidepassword('http://me@www.example.com/some/path#fragment') - 'http://me@www.example.com/some/path#fragment' - >>> hidepassword('http://me:simplepw@www.example.com/path#frag') - 'http://me:***@www.example.com/path#frag' - >>> hidepassword('http://me:complex:pw@www.example.com/path#frag') - 'http://me:***@www.example.com/path#frag' - >>> hidepassword('/path/to/repo') - '/path/to/repo' - >>> hidepassword('relative/path/to/repo') - 'relative/path/to/repo' - >>> hidepassword('c:\\\\path\\\\to\\\\repo') - 'c:\\\\path\\\\to\\\\repo' - >>> hidepassword('c:/path/to/repo') - 'c:/path/to/repo' - >>> hidepassword('bundle://path/to/bundle') - 'bundle://path/to/bundle' - ''' - url_parts = list(urlparse.urlparse(url)) - host_with_pw_pattern = re.compile('^([^:]*):([^@]*)@(.*)$') - if host_with_pw_pattern.match(url_parts[1]): - url_parts[1] = re.sub(host_with_pw_pattern, r'\1:***@\3', - url_parts[1]) - return urlparse.urlunparse(url_parts) - +def removeauth(url): + '''remove all authentication information from a url string''' + scheme, netloc, path, params, query, fragment = urlparse.urlparse(url) + netloc = netloc[netloc.find('@')+1:] + return urlparse.urlunparse((scheme, netloc, path, params, query, fragment))