コード例 #1
0
    def GetAuthHeader(self, http_method, http_url, realm=''):
        """Get the authentication header.

    Args:
      http_method: string HTTP method i.e. operation e.g. GET, POST, PUT, etc.
      http_url: string or atom.url.Url HTTP URL to which request is made.
      realm: string (default='') realm parameter to be included in the
          authorization header.

    Returns:
      dict Header to be sent with every subsequent request after
      authentication.
    """
        if isinstance(http_url, str):
            http_url = atom.url.parse_url(http_url)
        header = None
        token = None
        if self.key or self.secret:
            token = oauth.OAuthToken(self.key, self.secret)
        oauth_request = oauth.OAuthRequest.from_consumer_and_token(
            self.oauth_input_params.GetConsumer(),
            token=token,
            http_url=str(http_url),
            http_method=http_method,
            parameters=http_url.params)
        oauth_request.sign_request(
            self.oauth_input_params.GetSignatureMethod(),
            self.oauth_input_params.GetConsumer(), token)
        header = oauth_request.to_header(realm=realm)
        header['Authorization'] = header['Authorization'].replace('+', '%2B')
        return header
コード例 #2
0
def GenerateOAuthAccessTokenUrl(
        authorized_request_token,
        oauth_input_params,
        access_token_url='https://www.google.com/accounts/OAuthGetAccessToken',
        oauth_version='1.0'):
    """Generates URL at which user will login to authorize the request token.
  
  Args:
    authorized_request_token: gdata.auth.OAuthToken OAuth authorized request
        token.
    oauth_input_params: OAuthInputParams OAuth input parameters.    
    access_token_url: string The beginning of the authorization URL. This is
        normally 'https://www.google.com/accounts/OAuthGetAccessToken' or
        '/accounts/OAuthGetAccessToken'
    oauth_version: str (default='1.0') oauth_version parameter.

  Returns:
    atom.url.Url OAuth access token URL.
  """
    oauth_token = oauth.OAuthToken(authorized_request_token.key,
                                   authorized_request_token.secret)
    oauth_request = oauth.OAuthRequest.from_consumer_and_token(
        oauth_input_params.GetConsumer(),
        token=oauth_token,
        http_url=access_token_url,
        parameters={'oauth_version': oauth_version})
    oauth_request.sign_request(oauth_input_params.GetSignatureMethod(),
                               oauth_input_params.GetConsumer(), oauth_token)
    return atom.url.parse_url(oauth_request.to_url())
コード例 #3
0
def GenerateOAuthAccessTokenUrl(
    authorized_request_token,
    oauth_input_params,
    access_token_url='https://www.google.com/accounts/OAuthGetAccessToken',
    oauth_version='1.0',
    oauth_verifier=None):
  """Generates URL at which user will login to authorize the request token.
  
  Args:
    authorized_request_token: gdata.auth.OAuthToken OAuth authorized request
        token.
    oauth_input_params: OAuthInputParams OAuth input parameters.    
    access_token_url: string The beginning of the authorization URL. This is
        normally 'https://www.google.com/accounts/OAuthGetAccessToken' or
        '/accounts/OAuthGetAccessToken'
    oauth_version: str (default='1.0') oauth_version parameter.
    oauth_verifier: str (optional) If present, it is assumed that the client
        will use the OAuth v1.0a protocol which includes passing the
        oauth_verifier (as returned by the SP) in the access token step.

  Returns:
    atom.url.Url OAuth access token URL.
  """
  oauth_token = oauth.OAuthToken(authorized_request_token.key,
                                 authorized_request_token.secret)
  parameters = {'oauth_version': oauth_version}
  if oauth_verifier is not None:
    parameters['oauth_verifier'] = oauth_verifier
  oauth_request = oauth.OAuthRequest.from_consumer_and_token(
      oauth_input_params.GetConsumer(), token=oauth_token,
      http_url=access_token_url, parameters=parameters)
  oauth_request.sign_request(oauth_input_params.GetSignatureMethod(),
                             oauth_input_params.GetConsumer(), oauth_token)
  return atom.url.parse_url(oauth_request.to_url())
コード例 #4
0
ファイル: data_test.py プロジェクト: yishingene/gdata-python3
    def setUp(self):
        self.consumer = oauth.OAuthConsumer('a56b5ff0a637ab283d1d8e32ced37a9c',
                                            '9a3248210c84b264b56b98c0b872bc8a')
        self.token = oauth.OAuthToken('5b2cafbf20b11bace53b29e37d8a673d',
                                      '3f71254637df2002d8819458ae4f6c51')
        self.http_url = 'http://dev.alicehub.com/server/api/newsfeed/update/'

        self.http_method = HTTP_METHOD_POST
コード例 #5
0
 def fetch_access_token(self, oauth_consumer, oauth_token):
     data = self.request_token_db.get(oauth_token.key)
     if data:
         del self.request_token_db[oauth_token.key]
         request_token, consumer, authenticated_user = data
         access_token = oauth.OAuthToken(
             "5b2cafbf20b11bace53b29e37d8a673dAT",
             "3f71254637df2002d8819458ae4f6c51AT")
         self.access_token_db[access_token.key] = (access_token, consumer,
                                                   authenticated_user)
         return access_token
     else:
         return None
コード例 #6
0
ファイル: auth.py プロジェクト: jamuseum/gdata-python-client
def GenerateOAuthAuthorizationUrl(
        request_token,
        authorization_url='https://www.google.com/accounts/OAuthAuthorizeToken',
        callback_url=None,
        extra_params=None,
        include_scopes_in_callback=False,
        scopes_param_prefix='oauth_token_scope'):
    """Generates URL at which user will login to authorize the request token.
  
  Args:
    request_token: gdata.auth.OAuthToken OAuth request token.
    authorization_url: string The beginning of the authorization URL. This is
        normally 'https://www.google.com/accounts/OAuthAuthorizeToken' or
        '/accounts/OAuthAuthorizeToken'
    callback_url: string (optional) The URL user will be sent to after
        logging in and granting access.
    extra_params: dict (optional) Additional parameters to be sent.
    include_scopes_in_callback: Boolean (default=False) if set to True, and
        if 'callback_url' is present, the 'callback_url' will be modified to
        include the scope(s) from the request token as a URL parameter. The
        key for the 'callback' URL's scope parameter will be
        OAUTH_SCOPE_URL_PARAM_NAME. The benefit of including the scope URL as
        a parameter to the 'callback' URL, is that the page which receives
        the OAuth token will be able to tell which URLs the token grants
        access to.
    scopes_param_prefix: string (default='oauth_token_scope') The URL
        parameter key which maps to the list of valid scopes for the token.
        This URL parameter will be included in the callback URL along with
        the scopes of the token as value if include_scopes_in_callback=True.

  Returns:
    atom.url.Url OAuth authorization URL.
  """
    scopes = request_token.scopes
    if isinstance(scopes, list):
        scopes = ' '.join(scopes)
    if include_scopes_in_callback and callback_url:
        if callback_url.find('?') > -1:
            callback_url += '&'
        else:
            callback_url += '?'
        callback_url += six.moves.urllib.parse.urlencode(
            {scopes_param_prefix: scopes})
    oauth_token = oauth.OAuthToken(request_token.key, request_token.secret)
    oauth_request = oauth.OAuthRequest.from_token_and_callback(
        token=oauth_token,
        callback=callback_url,
        http_url=authorization_url,
        parameters=extra_params)
    return atom.url.parse_url(oauth_request.to_url())
コード例 #7
0
 def test___str__(self):
     self.assertEqual(str(self.token),
                      'oauth_token_secret=secret&oauth_token=key')
     t = oauth.OAuthToken('+', '%')
     self.assertEqual(str(t), 'oauth_token_secret=%25&oauth_token=%2B')
コード例 #8
0
 def test_to_string(self):
     self.assertEqual(self.token.to_string(),
                      'oauth_token_secret=secret&oauth_token=key')
     t = oauth.OAuthToken('+', '%')
     self.assertEqual(t.to_string(),
                      'oauth_token_secret=%25&oauth_token=%2B')
コード例 #9
0
 def setUp(self):
     self.key = 'key'
     self.secret = 'secret'
     self.token = oauth.OAuthToken(self.key, self.secret)
コード例 #10
0
 def fetch_request_token(self, oauth_consumer):
     token = oauth.OAuthToken("5b2cafbf20b11bace53b29e37d8a673dRT",
                              "3f71254637df2002d8819458ae4f6c51RT")
     self.request_token_db[token.key] = (token, oauth_consumer, None)
     return token