Skip to content

Commit daaec0a

Browse files
author
api.jscudder
committed
Allows OAuth methods to specify an OAuth server URL. Written by dbrattli. Resolves issue 199.
1 parent 094ad8b commit daaec0a

1 file changed

Lines changed: 22 additions & 11 deletions

File tree

src/gdata/service.py

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,9 @@ def SetOAuthInputParameters(self, signature_method, consumer_key,
367367
oauth_input_params=self._oauth_input_params)
368368
self.SetOAuthToken(oauth_token)
369369

370-
def FetchOAuthRequestToken(self, scopes=None, extra_parameters=None):
370+
def FetchOAuthRequestToken(self, scopes=None, extra_parameters=None,
371+
request_url='%s/accounts/OAuthGetRequestToken' % \
372+
AUTH_SERVER_HOST):
371373
"""Fetches OAuth request token and returns it.
372374
373375
Args:
@@ -381,6 +383,8 @@ def FetchOAuthRequestToken(self, scopes=None, extra_parameters=None):
381383
default parameters will be overwritten. For e.g. a default parameter
382384
oauth_version 1.0 can be overwritten if
383385
extra_parameters = {'oauth_version': '2.0'}
386+
request_url: Request token URL. The default is
387+
'https://www.google.com/accounts/OAuthGetRequestToken'.
384388
385389
Returns:
386390
The fetched request token as a gdata.auth.OAuthToken object.
@@ -395,7 +399,7 @@ def FetchOAuthRequestToken(self, scopes=None, extra_parameters=None):
395399
scopes = [scopes,]
396400
request_token_url = gdata.auth.GenerateOAuthRequestTokenUrl(
397401
self._oauth_input_params, scopes,
398-
request_token_url='%s/accounts/OAuthGetRequestToken' % AUTH_SERVER_HOST,
402+
request_token_url=request_url,
399403
extra_parameters=extra_parameters)
400404
response = self.http_client.request('GET', str(request_token_url))
401405
if response.status == 200:
@@ -432,7 +436,8 @@ def SetOAuthToken(self, oauth_token):
432436
def GenerateOAuthAuthorizationURL(
433437
self, request_token=None, callback_url=None, extra_params=None,
434438
include_scopes_in_callback=False,
435-
scopes_param_prefix=OAUTH_SCOPE_URL_PARAM_NAME):
439+
scopes_param_prefix=OAUTH_SCOPE_URL_PARAM_NAME,
440+
request_url='%s/accounts/OAuthAuthorizeToken' % AUTH_SERVER_HOST):
436441
"""Generates URL at which user will login to authorize the request token.
437442
438443
Args:
@@ -455,7 +460,8 @@ def GenerateOAuthAuthorizationURL(
455460
parameter key which maps to the list of valid scopes for the token.
456461
This URL parameter will be included in the callback URL along with
457462
the scopes of the token as value if include_scopes_in_callback=True.
458-
463+
request_url: Authorization URL. The default is
464+
'https://www.google.com/accounts/OAuthAuthorizeToken'.
459465
Returns:
460466
A string URL at which the user is required to login.
461467
@@ -478,13 +484,14 @@ def GenerateOAuthAuthorizationURL(
478484
raise NonOAuthToken
479485
return str(gdata.auth.GenerateOAuthAuthorizationUrl(
480486
request_token,
481-
authorization_url='%s/accounts/OAuthAuthorizeToken' % AUTH_SERVER_HOST,
487+
authorization_url=request_url,
482488
callback_url=callback_url, extra_params=extra_params,
483489
include_scopes_in_callback=include_scopes_in_callback,
484490
scopes_param_prefix=scopes_param_prefix))
485491

486492
def UpgradeToOAuthAccessToken(self, authorized_request_token=None,
487-
oauth_version='1.0'):
493+
request_url='%s/accounts/OAuthGetAccessToken' \
494+
% AUTH_SERVER_HOST, oauth_version='1.0'):
488495
"""Upgrades the authorized request token to an access token.
489496
490497
Args:
@@ -495,6 +502,8 @@ def UpgradeToOAuthAccessToken(self, authorized_request_token=None,
495502
oauth_version: str (default='1.0') oauth_version parameter. All other
496503
'oauth_' parameters are added by default. This parameter too, is
497504
added by default but here you can override it's value.
505+
request_url: Access token URL. The default is
506+
'https://www.google.com/accounts/OAuthGetAccessToken'.
498507
499508
Raises:
500509
NonOAuthToken if the user's authorized request token is not an OAuth
@@ -519,7 +528,7 @@ def UpgradeToOAuthAccessToken(self, authorized_request_token=None,
519528
access_token_url = gdata.auth.GenerateOAuthAccessTokenUrl(
520529
authorized_request_token,
521530
self._oauth_input_params,
522-
access_token_url='%s/accounts/OAuthGetAccessToken' % AUTH_SERVER_HOST,
531+
access_token_url=request_url,
523532
oauth_version=oauth_version)
524533
response = self.http_client.request('GET', str(access_token_url))
525534
if response.status == 200:
@@ -532,9 +541,12 @@ def UpgradeToOAuthAccessToken(self, authorized_request_token=None,
532541
'reason': 'Non 200 response on upgrade',
533542
'body': response.read()})
534543

535-
def RevokeOAuthToken(self):
544+
def RevokeOAuthToken(self, request_url='%s/accounts/AuthSubRevokeToken' % \
545+
AUTH_SERVER_HOST):
536546
"""Revokes an existing OAuth token.
537-
547+
548+
request_url: Token revoke URL. The default is
549+
'https://www.google.com/accounts/AuthSubRevokeToken'.
538550
Raises:
539551
NonOAuthToken if the user's auth token is not an OAuth token.
540552
RevokingOAuthTokenFailed if request for revoking an OAuth token failed.
@@ -544,8 +556,7 @@ def RevokeOAuthToken(self):
544556
if not isinstance(token, gdata.auth.OAuthToken):
545557
raise NonOAuthToken
546558

547-
response = token.perform_request(self.http_client, 'GET',
548-
AUTH_SERVER_HOST + '/accounts/AuthSubRevokeToken',
559+
response = token.perform_request(self.http_client, 'GET', request_url,
549560
headers={'Content-Type':'application/x-www-form-urlencoded'})
550561
if response.status == 200:
551562
self.token_store.remove_token(token)

0 commit comments

Comments
 (0)