gerrit_util: Support OAuth2 bearer tokens in CookieAuthenticator
Change-Id: I9fd3e2fa9ea16d7f057290e77a81f7009c7c9d91
Reviewed-on: https://chromium-review.googlesource.com/1221826
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Eric Boren <borenet@chromium.org>
diff --git a/gerrit_util.py b/gerrit_util.py
index f7bd210..9b52146 100644
--- a/gerrit_util.py
+++ b/gerrit_util.py
@@ -200,11 +200,13 @@
continue
domain, xpath, key, value = fields[0], fields[2], fields[5], fields[6]
if xpath == '/' and key == 'o':
- login, secret_token = value.split('=', 1)
- gitcookies[domain] = (login, secret_token)
+ if value.startswith('git-'):
+ login, secret_token = value.split('=', 1)
+ gitcookies[domain] = (login, secret_token)
+ else:
+ gitcookies[domain] = ('', value)
except (IndexError, ValueError, TypeError) as exc:
LOGGER.warning(exc)
-
return gitcookies
def _get_auth_for_host(self, host):
@@ -216,7 +218,10 @@
def get_auth_header(self, host):
a = self._get_auth_for_host(host)
if a:
- return 'Basic %s' % (base64.b64encode('%s:%s' % (a[0], a[2])))
+ if a[0]:
+ return 'Basic %s' % (base64.b64encode('%s:%s' % (a[0], a[2])))
+ else:
+ return 'Bearer %s' % a[2]
return None
def get_auth_email(self, host):