def test_sign_with_discovered_service_account(self):
        request = testutils.MockRequest(200, 'discovered-service-account')
        options = {'projectId': 'mock-project-id'}
        app = firebase_admin.initialize_app(testutils.MockCredential(),
                                            name='iam-signer-app',
                                            options=options)
        try:
            _overwrite_iam_request(app, request)
            # Force initialization of the signing provider. This will invoke the Metadata service.
            client = auth._get_client(app)
            assert client._token_generator.signing_provider is not None

            # Now invoke the IAM signer.
            signature = base64.b64encode(b'test').decode()
            request.response = testutils.MockResponse(
                200, '{{"signature": "{0}"}}'.format(signature))
            custom_token = auth.create_custom_token(MOCK_UID, app=app).decode()
            assert custom_token.endswith('.' + signature.rstrip('='))
            self._verify_signer(custom_token, 'discovered-service-account')
            assert len(request.log) == 2
            assert request.log[0][1]['headers'] == {
                'Metadata-Flavor': 'Google'
            }
        finally:
            firebase_admin.delete_app(app)
Exemplo n.º 2
0
def _instrument_provider_mgt(app, status, payload):
    client = auth._get_client(app)
    provider_manager = client._provider_manager
    recorder = []
    provider_manager.http_client.session.mount(
        _auth_providers.ProviderConfigClient.PROVIDER_CONFIG_URL,
        testutils.MockAdapter(payload, status, recorder))
    return recorder
def _instrument_user_manager(app, status, payload):
    client = auth._get_client(app)
    user_manager = client._user_manager
    recorder = []
    user_manager.http_client.session.mount(
        _token_gen.TokenGenerator.ID_TOOLKIT_URL,
        testutils.MockAdapter(payload, status, recorder))
    return user_manager, recorder
Exemplo n.º 4
0
    def test_init_request(self, options, timeout):
        app = firebase_admin.initialize_app(MOCK_CREDENTIAL, options=options)

        client = auth._get_client(app)
        request = client._token_verifier.request

        assert isinstance(request, _token_gen.CertificateFetchRequest)
        assert request.timeout_seconds == timeout
Exemplo n.º 5
0
def _instrument_user_manager(app, status, payload):
    client = auth._get_client(app)
    user_manager = client._user_manager
    recorder = []
    user_manager.http_client.session.mount(
        TOKEN_MGT_URLS['ID_TOOLKIT'],
        testutils.MockAdapter(payload, status, recorder))
    return user_manager, recorder
def _instrument_provider_mgt(app, status, payload):
    client = auth._get_client(app)
    provider_manager = client._provider_manager
    recorder = []
    provider_manager.http_client.session.mount(
        USER_MGT_URLS['ID_TOOLKIT'],
        testutils.MockAdapter(payload, status, recorder))
    return recorder
Exemplo n.º 7
0
 def _instrument_session(self, app):
     client = auth._get_client(app)
     request = client._token_verifier.request
     recorder = []
     request.session.mount(
         'https://', testutils.MockAdapter(MOCK_PUBLIC_CERTS, 200,
                                           recorder))
     return recorder
def _overwrite_iam_request(app, request):
    client = auth._get_client(app)
    client._token_generator.request = request
def _overwrite_cert_request(app, request):
    client = auth._get_client(app)
    client._token_verifier.request = request
Exemplo n.º 10
0
class UserFirebase:
    certeficate = credentials.Certificate(firebaseConfig)
    app_firebase = firebase_admin.initialize_app(certeficate)
    client = auth._get_client(app_firebase)