示例#1
0
 def call(ident, ip):
     api.reset_local_state()
     mocked_ident[0] = ident
     response = app.get('/request',
                        extra_environ={'REMOTE_ADDR': ip},
                        expect_errors=True)
     return response.status_int
示例#2
0
 def setUp(self):
   super(MembershipTest, self).setUp()
   api.reset_local_state()
   self.mock(api, 'is_admin', lambda *_: True)
   model.AuthGroup(key=model.group_key('testgroup'), members=[]).put()
   def is_group_member_mock(group, identity):
     group = model.group_key(group).get()
     return group is not None and identity in group.members
   self.mock(api, 'is_group_member', is_group_member_mock)
示例#3
0
 def setUp(self):
   super(MembershipTest, self).setUp()
   api.reset_local_state()
   self.mock(api, 'is_admin', lambda *_: True)
   model.AuthGroup(key=model.group_key('testgroup'), members=[]).put()
   def is_group_member_mock(group, identity):
     group = model.group_key(group).get()
     return group is not None and identity in group.members
   self.mock(api, 'is_group_member', is_group_member_mock)
示例#4
0
 def setUp(self):
   super(AuthenticatingHandlerTest, self).setUp()
   # Reset global config of auth library before each test.
   api.reset_local_state()
   # Capture error and warning log messages.
   self.logged_errors = []
   self.mock(handler.logging, 'error',
       lambda *args, **kwargs: self.logged_errors.append((args, kwargs)))
   self.logged_warnings = []
   self.mock(handler.logging, 'warning',
       lambda *args, **kwargs: self.logged_warnings.append((args, kwargs)))
示例#5
0
 def test_works(self):
     api.reset_local_state()  # to clear request-cached AuthDB
     # Subtoken proto.
     tok = fake_subtoken_proto('user:[email protected]',
                               audience=['user:[email protected]'])
     # Sign, serialize.
     blob = delegation.serialize_token(delegation.seal_token(tok))
     # Deserialize, check sig, validate.
     make_id = model.Identity.from_bytes
     ident = delegation.check_bearer_delegation_token(
         blob, make_id('user:[email protected]'))
     self.assertEqual(make_id('user:[email protected]'), ident)
示例#6
0
 def setUp(self):
   super(AuthenticatingHandlerTest, self).setUp()
   # Reset global config of auth library before each test.
   handler.configure([])
   api.reset_local_state()
   # Capture error and warning log messages.
   self.logged_errors = []
   self.mock(handler.logging, 'error',
       lambda *args, **kwargs: self.logged_errors.append((args, kwargs)))
   self.logged_warnings = []
   self.mock(handler.logging, 'warning',
       lambda *args, **kwargs: self.logged_warnings.append((args, kwargs)))
  def call(self, remote_address, email, headers=None):
    """Mocks current user calls initialize_request_auth."""

    class User(object):
      def email(self):
        return email
    self.mock(
        endpoints_support.endpoints, 'get_current_user',
        lambda: User() if email else None)

    api.reset_local_state()
    endpoints_support.initialize_request_auth(remote_address, headers or {})
    return api.get_current_identity().to_bytes()
示例#8
0
    def call(self, remote_address, email, headers=None):
        """Mocks current user calls initialize_request_auth."""
        class User(object):
            def email(self):
                return email

        self.mock(endpoints_support.endpoints, 'get_current_user',
                  lambda: User() if email else None)

        api.reset_local_state()
        endpoints_support.initialize_request_auth(remote_address, headers
                                                  or {})
        return api.get_current_identity().to_bytes()
示例#9
0
    def call(self, peer_id, email, headers=None):
        """Mocks pRPC environment and calls the interceptor.

    Returns:
      CapturedState with info about auth context inside the handler.
      MockContext as it is after the request finishes.
    """
        api.reset_local_state()

        headers = (headers or {}).copy()
        if email:
            headers['Authorization'] = 'Bearer %s' % email
        metadata = [(k.lower(), v) for k, v in sorted(headers.items())]

        if email != 'BROKEN':
            ident = model.Anonymous
            if email:
                ident = model.Identity(model.IDENTITY_USER, email)
            self.mock(api, 'check_oauth_access_token', lambda _: (ident, None))
        else:

            def raise_exc(_):
                raise api.AuthenticationError('OMG, bad token')

            self.mock(api, 'check_oauth_access_token', raise_exc)

        ctx = MockContext(peer_id, metadata)
        call_details = prpclib.HandlerCallDetails('service.Method', metadata)

        state = []

        def continuation(request, context, call_details):
            state.append(
                CapturedState(
                    current_identity=api.get_current_identity().to_bytes(),
                    is_superuser=api.is_superuser(),
                    peer_identity=api.get_peer_identity().to_bytes(),
                    peer_ip=api.get_peer_ip(),
                    delegation_token=api.get_delegation_token(),
                ))
            return empty_pb2.Empty()

        prpc.prpc_interceptor(empty_pb2.Empty(), ctx, call_details,
                              continuation)

        self.assertTrue(len(state) <= 1)
        return state[0] if state else None, ctx
示例#10
0
 def setUp(self):
     super(AuthenticatingHandlerTest, self).setUp()
     # Reset global config of auth library before each test.
     api.reset_local_state()
     # Capture error and warning log messages.
     self.logged_errors = []
     self.mock(
         handler.logging, 'error',
         lambda *args, **kwargs: self.logged_errors.append((args, kwargs)))
     self.logged_warnings = []
     self.mock(
         handler.logging, 'warning',
         lambda *args, **kwargs: self.logged_warnings.append(
             (args, kwargs)))
     # Don't actually check delegation token signatures.
     self.mock(delegation, 'get_trusted_signers',
               self.mock_get_trusted_signers)
示例#11
0
    def setUp(self):
        super(TestCase, self).setUp()
        api.reset_local_state()

        self.logged_errors = []
        self.mock(
            logging, 'error',
            lambda *args, **kwargs: self.logged_errors.append((args, kwargs)))
        self.logged_warnings = []
        self.mock(
            logging, 'warning',
            lambda *args, **kwargs: self.logged_warnings.append(
                (args, kwargs)))

        self.trusted_signers = {'user:[email protected]': self}
        self.mock(delegation, 'get_trusted_signers',
                  lambda: self.trusted_signers)
示例#12
0
    def call(self, remote_address, email, headers=None):
        """Mocks current user in initialize_request_auth."""
        headers = (headers or {}).copy()
        if email:
            headers['Authorization'] = 'Bearer %s' % email

        # Mock ours auth.
        ident = model.Anonymous
        if email:
            ident = model.Identity(model.IDENTITY_USER, email)
        self.mock(api, 'check_oauth_access_token', lambda _: (ident, False))

        # Mock auth implemented by the Cloud Endpoints.
        class User(object):
            def email(self):
                return email

        self.mock(endpoints_support.endpoints, 'get_current_user',
                  lambda: User() if email else None)

        api.reset_local_state()
        endpoints_support.initialize_request_auth(remote_address, headers)
        return api.get_current_identity().to_bytes()
示例#13
0
 def setUp(self):
     super(ApiTest, self).setUp()
     api.reset_local_state()
示例#14
0
 def setUp(self):
     super(ApiTest, self).setUp()
     api.reset_local_state()
示例#15
0
 def setUp(self):
     super(SignatureTest, self).setUp()
     api.reset_local_state()  # to clear request-cached AuthDB
示例#16
0
 def call(headers):
     api.reset_local_state()
     return app.get('/request', headers=headers).body
示例#17
0
 def setUp(self):
     super(TestAuthDBCache, self).setUp()
     api.reset_local_state()
示例#18
0
 def call(ip):
     api.reset_local_state()
     return app.get('/request', extra_environ={'REMOTE_ADDR': ip}).body
示例#19
0
 def call(ident, ip):
   api.reset_local_state()
   mocked_ident[0] = ident
   response = app.get(
       '/request', extra_environ={'REMOTE_ADDR': ip}, expect_errors=True)
   return response.status_int
示例#20
0
 def setUp(self):
     super(SignatureTest, self).setUp()
     api.reset_local_state()  # to clear request-cached AuthDB
     self.mock(delegation, 'get_trusted_signers',
               self.mock_get_trusted_signers)
示例#21
0
 def call(ip):
   api.reset_local_state()
   return app.get('/request', extra_environ={'REMOTE_ADDR': ip}).body
示例#22
0
 def call(ident, ip):
   api.reset_local_state()
   handler.configure([lambda _request: ident])
   response = app.get(
       '/request', extra_environ={'REMOTE_ADDR': ip}, expect_errors=True)
   return response.status_int
示例#23
0
 def call(headers):
   api.reset_local_state()
   return app.get('/request', headers=headers).body
示例#24
0
 def setUp(self):
     super(TestAuthDBCache, self).setUp()
     api.reset_local_state()