Exemple #1
0
 def testMaybeSetVarsAlreadySetIdTokenNoDomain(self):
   os.environ['ENDPOINTS_AUTH_EMAIL'] = '*****@*****.**'
   os.environ['ENDPOINTS_AUTH_DOMAIN'] = ''
   users_id_token._maybe_set_current_user_vars(
       self.TestApiAnnotatedAtApi().method)
   self.assertNotIn('ENDPOINTS_USE_OAUTH_SCOPE', os.environ)
   self.assertEqual('*****@*****.**', os.environ.get('ENDPOINTS_AUTH_EMAIL'))
   self.assertEqual('', os.environ.get('ENDPOINTS_AUTH_DOMAIN'))
Exemple #2
0
 def testMaybeSetVarsAlreadySetOauth(self):
   os.environ['ENDPOINTS_USE_OAUTH_SCOPE'] = (
       'https://www.googleapis.com/auth/userinfo.email')
   users_id_token._maybe_set_current_user_vars(
       self.TestApiAnnotatedAtApi().method)
   self.assertEqual('https://www.googleapis.com/auth/userinfo.email',
                    os.environ.get('ENDPOINTS_USE_OAUTH_SCOPE'))
   self.assertNotIn('ENDPOINTS_AUTH_EMAIL', os.environ)
   self.assertNotIn('ENDPOINTS_AUTH_DOMAIN', os.environ)
  def VerifyIdToken(self, cls, *args):
    self.mox.StubOutWithMock(time, 'time')
    self.mox.StubOutWithMock(users_id_token, '_get_id_token_user')
    time.time().AndReturn(1001)
    users_id_token._get_id_token_user(
        self._SAMPLE_TOKEN,
        self._SAMPLE_AUDIENCES,
        self._SAMPLE_ALLOWED_CLIENT_IDS,
        1001, memcache).AndReturn(users.User('*****@*****.**'))
    self.mox.ReplayAll()

    os.environ['HTTP_AUTHORIZATION'] = ('Bearer ' + self._SAMPLE_TOKEN)
    if args:
      cls.method(*args)
    else:
      users_id_token._maybe_set_current_user_vars(cls.method)
    self.assertEqual(os.environ.get('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')
    self.mox.VerifyAll()
Exemple #4
0
  def VerifyIdToken(self, cls, *args):
    self.mox.StubOutWithMock(time, 'time')
    self.mox.StubOutWithMock(users_id_token, '_get_id_token_user')
    time.time().AndReturn(1001)
    users_id_token._get_id_token_user(
        self._SAMPLE_TOKEN,
        users_id_token._ISSUERS,
        self._SAMPLE_AUDIENCES,
        self._SAMPLE_ALLOWED_CLIENT_IDS,
        1001, memcache).AndReturn(users.User('*****@*****.**'))
    self.mox.ReplayAll()

    os.environ['HTTP_AUTHORIZATION'] = ('Bearer ' + self._SAMPLE_TOKEN)
    if args:
      cls.method(*args)
    else:
      users_id_token._maybe_set_current_user_vars(cls.method)
    self.assertEqual(os.environ.get('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')
    self.mox.VerifyAll()
 def VerifyIdToken(self, cls, *args):
   with mock.patch.object(users_id_token, 'time') as mock_time,\
         mock.patch.object(users_id_token, '_get_id_token_user') as mock_get:
     mock_time.time.return_value = 1001
     mock_get.return_value = users.User('*****@*****.**')
     os.environ['HTTP_AUTHORIZATION'] = ('Bearer ' + self._SAMPLE_TOKEN)
     if args:
       cls.method(*args)
     else:
       users_id_token._maybe_set_current_user_vars(cls.method)
     mock_time.time.assert_called_once_with()
     mock_get.assert_called_once_with(
       self._SAMPLE_TOKEN,
       users_id_token._ISSUERS,
       self._SAMPLE_AUDIENCES,
       (constants.API_EXPLORER_CLIENT_ID,) + self._SAMPLE_ALLOWED_CLIENT_IDS,
       1001,
       memcache,
     )
Exemple #6
0
 def VerifyIdToken(self, cls, *args):
   with mock.patch.object(users_id_token, 'time') as mock_time,\
         mock.patch.object(users_id_token, '_get_id_token_user') as mock_get:
     mock_time.time.return_value = 1001
     mock_get.return_value = users.User('*****@*****.**')
     os.environ['HTTP_AUTHORIZATION'] = ('Bearer ' + self._SAMPLE_TOKEN)
     if args:
       cls.method(*args)
     else:
       users_id_token._maybe_set_current_user_vars(cls.method)
     mock_time.time.assert_called_once_with()
     mock_get.assert_called_once_with(
       self._SAMPLE_TOKEN,
       users_id_token._ISSUERS,
       self._SAMPLE_AUDIENCES,
       (constants.API_EXPLORER_CLIENT_ID,) + self._SAMPLE_ALLOWED_CLIENT_IDS,
       1001,
       memcache,
     )
Exemple #7
0
    def testMaybeSetVarsFail(self):
        self.mox.StubOutWithMock(time, 'time')
        time.time().MultipleTimes().AndReturn(1001)
        self.mox.StubOutWithMock(users_id_token, '_get_id_token_user')
        users_id_token._get_id_token_user(
            self._SAMPLE_TOKEN, self._SAMPLE_AUDIENCES,
            self._SAMPLE_ALLOWED_CLIENT_IDS, 1001,
            memcache).MultipleTimes().AndReturn(users.User('*****@*****.**'))
        self.mox.ReplayAll()
        # This token should correctly result in _get_id_token_user being called
        os.environ['HTTP_AUTHORIZATION'] = ('Bearer ' + self._SAMPLE_TOKEN)
        api_instance = self.TestApiAnnotatedAtApi()

        # No im_self is present and no api_info can be used, so the method itself
        # has no access to scopes, hence scopes will be null and neither of the
        # token checks will occur
        users_id_token._maybe_set_current_user_vars(
            api_instance.method.im_func)
        self.assertNotIn('ENDPOINTS_USE_OAUTH_SCOPE', os.environ)
        self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '')
        self.assertEqual(os.getenv('ENDPOINTS_AUTH_DOMAIN'), '')

        # Test the same works when using the method and not im_func
        os.environ.pop('ENDPOINTS_AUTH_EMAIL')
        os.environ.pop('ENDPOINTS_AUTH_DOMAIN')
        users_id_token._maybe_set_current_user_vars(api_instance.method)
        self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')

        # Test that it works using the api info from the API
        os.environ.pop('ENDPOINTS_AUTH_EMAIL')
        os.environ.pop('ENDPOINTS_AUTH_DOMAIN')
        users_id_token._maybe_set_current_user_vars(
            api_instance.method.im_func, api_info=api_instance.api_info)
        self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')
        self.mox.VerifyAll()
  def testMaybeSetVarsFail(self):
    self.mox.StubOutWithMock(time, 'time')
    time.time().MultipleTimes().AndReturn(1001)
    self.mox.StubOutWithMock(users_id_token, '_get_id_token_user')
    users_id_token._get_id_token_user(
        self._SAMPLE_TOKEN,
        self._SAMPLE_AUDIENCES,
        self._SAMPLE_ALLOWED_CLIENT_IDS,
        1001, memcache).MultipleTimes().AndReturn(users.User('*****@*****.**'))
    self.mox.ReplayAll()
    # This token should correctly result in _get_id_token_user being called
    os.environ['HTTP_AUTHORIZATION'] = ('Bearer ' + self._SAMPLE_TOKEN)
    api_instance = self.TestApiAnnotatedAtApi()

    # No im_self is present and no api_info can be used, so the method itself
    # has no access to scopes, hence scopes will be null and neither of the
    # token checks will occur
    users_id_token._maybe_set_current_user_vars(api_instance.method.im_func)
    self.assertNotIn('ENDPOINTS_USE_OAUTH_SCOPE', os.environ)
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '')
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_DOMAIN'), '')

    # Test the same works when using the method and not im_func
    os.environ.pop('ENDPOINTS_AUTH_EMAIL')
    os.environ.pop('ENDPOINTS_AUTH_DOMAIN')
    users_id_token._maybe_set_current_user_vars(api_instance.method)
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')

    # Test that it works using the api info from the API
    os.environ.pop('ENDPOINTS_AUTH_EMAIL')
    os.environ.pop('ENDPOINTS_AUTH_DOMAIN')
    users_id_token._maybe_set_current_user_vars(api_instance.method.im_func,
                                                api_info=api_instance.api_info)
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')
    self.mox.VerifyAll()
  def testMaybeSetVarsFail(self, mock_time, mock_get_id_token_user):
    mock_time.return_value = 1001
    mock_get_id_token_user.return_value = users.User('*****@*****.**')

    # This token should correctly result in _get_id_token_user being called
    os.environ['HTTP_AUTHORIZATION'] = ('Bearer ' + self._SAMPLE_TOKEN)
    api_instance = self.TestApiAnnotatedAtApi()

    # No im_self is present and no api_info can be used, so the method itself
    # has no access to scopes, hence scopes will be null and neither of the
    # token checks will occur
    users_id_token._maybe_set_current_user_vars(api_instance.method.im_func)
    self.assertNotIn('ENDPOINTS_USE_OAUTH_SCOPE', os.environ)
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '')
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_DOMAIN'), '')

    # Test the same works when using the method and not im_func
    os.environ.pop('ENDPOINTS_AUTH_EMAIL')
    os.environ.pop('ENDPOINTS_AUTH_DOMAIN')
    users_id_token._maybe_set_current_user_vars(api_instance.method)
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')
    mock_get_id_token_user.assert_called_once_with(
        self._SAMPLE_TOKEN,
        users_id_token._ISSUERS,
        self._SAMPLE_AUDIENCES,
        (constants.API_EXPLORER_CLIENT_ID,) + self._SAMPLE_ALLOWED_CLIENT_IDS,
        1001,
        memcache)
    mock_get_id_token_user.reset_mock()

    # Test that it works using the api info from the API
    os.environ.pop('ENDPOINTS_AUTH_EMAIL')
    os.environ.pop('ENDPOINTS_AUTH_DOMAIN')
    users_id_token._maybe_set_current_user_vars(api_instance.method.im_func,
                                                api_info=api_instance.api_info)
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')

    mock_get_id_token_user.assert_called_once_with(
        self._SAMPLE_TOKEN,
        users_id_token._ISSUERS,
        self._SAMPLE_AUDIENCES,
        (constants.API_EXPLORER_CLIENT_ID,) + self._SAMPLE_ALLOWED_CLIENT_IDS,
        1001,
        memcache)
Exemple #10
0
  def testMaybeSetVarsFail(self, mock_time, mock_get_id_token_user):
    mock_time.return_value = 1001
    mock_get_id_token_user.return_value = users.User('*****@*****.**')

    # This token should correctly result in _get_id_token_user being called
    os.environ['HTTP_AUTHORIZATION'] = ('Bearer ' + self._SAMPLE_TOKEN)
    api_instance = self.TestApiAnnotatedAtApi()

    # No im_self is present and no api_info can be used, so the method itself
    # has no access to scopes, hence scopes will be null and neither of the
    # token checks will occur
    users_id_token._maybe_set_current_user_vars(api_instance.method.im_func)
    self.assertNotIn('ENDPOINTS_USE_OAUTH_SCOPE', os.environ)
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '')
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_DOMAIN'), '')

    # Test the same works when using the method and not im_func
    os.environ.pop('ENDPOINTS_AUTH_EMAIL')
    os.environ.pop('ENDPOINTS_AUTH_DOMAIN')
    users_id_token._maybe_set_current_user_vars(api_instance.method)
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')
    mock_get_id_token_user.assert_called_once_with(
        self._SAMPLE_TOKEN,
        users_id_token._ISSUERS,
        self._SAMPLE_AUDIENCES,
        (constants.API_EXPLORER_CLIENT_ID,) + self._SAMPLE_ALLOWED_CLIENT_IDS,
        1001,
        memcache)
    mock_get_id_token_user.reset_mock()

    # Test that it works using the api info from the API
    os.environ.pop('ENDPOINTS_AUTH_EMAIL')
    os.environ.pop('ENDPOINTS_AUTH_DOMAIN')
    users_id_token._maybe_set_current_user_vars(api_instance.method.im_func,
                                                api_info=api_instance.api_info)
    self.assertEqual(os.getenv('ENDPOINTS_AUTH_EMAIL'), '*****@*****.**')

    mock_get_id_token_user.assert_called_once_with(
        self._SAMPLE_TOKEN,
        users_id_token._ISSUERS,
        self._SAMPLE_AUDIENCES,
        (constants.API_EXPLORER_CLIENT_ID,) + self._SAMPLE_ALLOWED_CLIENT_IDS,
        1001,
        memcache)