##// END OF EJS Templates
Prefix lookup attempts to handle both version with user and without it...
Marcin Kasperski -
r199:b701b33b default
parent child Browse files
Show More
@@ -317,7 +317,8 b' class HTTPPasswordHandler(object):'
317 """
317 """
318 ui = pwmgr.ui
318 ui = pwmgr.ui
319
319
320 base_url, url_user, url_passwd = self.unpack_url(authuri)
320 parsed_url, url_user, url_passwd = self.unpack_url(authuri)
321 base_url = str(parsed_url)
321 ui.debug(_('keyring: base url: %s, url user: %s, url pwd: %s\n') %
322 ui.debug(_('keyring: base url: %s, url user: %s, url pwd: %s\n') %
322 (base_url, url_user or '', url_passwd and '******' or ''))
323 (base_url, url_user or '', url_passwd and '******' or ''))
323
324
@@ -335,7 +336,7 b' class HTTPPasswordHandler(object):'
335 # Consult configuration to normalize url to prefix, and find username
336 # Consult configuration to normalize url to prefix, and find username
336 # (and maybe password)
337 # (and maybe password)
337 auth_user, auth_pwd, keyring_url = self.get_url_config(
338 auth_user, auth_pwd, keyring_url = self.get_url_config(
338 ui, base_url, url_user)
339 ui, parsed_url, url_user)
339 if auth_user and url_user and (url_user != auth_user):
340 if auth_user and url_user and (url_user != auth_user):
340 raise util.Abort(_('keyring: username for %s specified both in repository path (%s) and in .hg/hgrc/[auth] (%s). Please, leave only one of those' % (base_url, url_user, auth_user)))
341 raise util.Abort(_('keyring: username for %s specified both in repository path (%s) and in .hg/hgrc/[auth] (%s). Please, leave only one of those' % (base_url, url_user, auth_user)))
341 if auth_user and auth_pwd:
342 if auth_user and auth_pwd:
@@ -415,7 +416,7 b' class HTTPPasswordHandler(object):'
415 _debug(ui, _("Manually entered password"))
416 _debug(ui, _("Manually entered password"))
416 return user, pwd
417 return user, pwd
417
418
418 def get_url_config(self, ui, base_url, user):
419 def get_url_config(self, ui, parsed_url, user):
419 """
420 """
420 Checks configuration to decide whether/which username, prefix,
421 Checks configuration to decide whether/which username, prefix,
421 and password are configured for given url. Consults [auth] section.
422 and password are configured for given url. Consults [auth] section.
@@ -424,9 +425,17 b' class HTTPPasswordHandler(object):'
424 found. username and password can be None (if unset), if prefix
425 found. username and password can be None (if unset), if prefix
425 is not found, url itself is returned.
426 is not found, url itself is returned.
426 """
427 """
428 base_url = str(parsed_url)
429
427 from mercurial.httpconnection import readauthforuri
430 from mercurial.httpconnection import readauthforuri
428 _debug(ui, _("Checking for hgrc info about url %s, user %s") % (base_url, user))
431 _debug(ui, _("Checking for hgrc info about url %s, user %s") % (base_url, user))
429 res = readauthforuri(ui, base_url, user)
432 res = readauthforuri(ui, base_url, user)
433 # If it user-less version not work, let's try with added username to handle
434 # both config conventions
435 if (not res) and user:
436 parsed_url.user = user
437 res = readauthforuri(ui, str(parsed_url), user)
438 parsed_url.user = None
430 if res:
439 if res:
431 group, auth_token = res
440 group, auth_token = res
432 else:
441 else:
@@ -503,6 +512,8 b' class HTTPPasswordHandler(object):'
503 (so prefix matching works properly)
512 (so prefix matching works properly)
504
513
505 Returns url, user, password
514 Returns url, user, password
515 where url is mercurial.util.url object already stripped of all those
516 params.
506 """
517 """
507 # mercurial.util.url, rather handy url parser
518 # mercurial.util.url, rather handy url parser
508 parsed_url = util.url(authuri)
519 parsed_url = util.url(authuri)
@@ -516,7 +527,7 b' class HTTPPasswordHandler(object):'
516 parsed_url.user = None
527 parsed_url.user = None
517 parsed_url.passwd = None
528 parsed_url.passwd = None
518
529
519 return str(parsed_url), user, passwd
530 return parsed_url, user, passwd
520
531
521
532
522 ############################################################
533 ############################################################
General Comments 0
You need to be logged in to leave comments. Login now