Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

Commit

Permalink
fix: enable self signed jwt for grpc (#168)
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 386504689

Source-Link: googleapis/googleapis@762094a

Source-Link: googleapis/googleapis-gen@6bfc480
  • Loading branch information
gcf-owl-bot[bot] committed Jul 24, 2021
1 parent 0c43e1e commit 9d4ccd1
Show file tree
Hide file tree
Showing 16 changed files with 176 additions and 122 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,10 @@ def __init__(
client_cert_source_for_mtls=client_cert_source_func,
quota_project_id=client_options.quota_project_id,
client_info=client_info,
always_use_jwt_access=(
Transport == type(self).get_transport_class("grpc")
or Transport == type(self).get_transport_class("grpc_asyncio")
),
)

def list_game_server_clusters(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,10 @@ def __init__(
client_cert_source_for_mtls=client_cert_source_func,
quota_project_id=client_options.quota_project_id,
client_info=client_info,
always_use_jwt_access=(
Transport == type(self).get_transport_class("grpc")
or Transport == type(self).get_transport_class("grpc_asyncio")
),
)

def list_game_server_configs(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,10 @@ def __init__(
client_cert_source_for_mtls=client_cert_source_func,
quota_project_id=client_options.quota_project_id,
client_info=client_info,
always_use_jwt_access=(
Transport == type(self).get_transport_class("grpc")
or Transport == type(self).get_transport_class("grpc_asyncio")
),
)

def list_game_server_deployments(
Expand Down
4 changes: 4 additions & 0 deletions google/cloud/gaming_v1/services/realms_service/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,10 @@ def __init__(
client_cert_source_for_mtls=client_cert_source_func,
quota_project_id=client_options.quota_project_id,
client_info=client_info,
always_use_jwt_access=(
Transport == type(self).get_transport_class("grpc")
or Transport == type(self).get_transport_class("grpc_asyncio")
),
)

def list_realms(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,10 @@ def __init__(
client_cert_source_for_mtls=client_cert_source_func,
quota_project_id=client_options.quota_project_id,
client_info=client_info,
always_use_jwt_access=(
Transport == type(self).get_transport_class("grpc")
or Transport == type(self).get_transport_class("grpc_asyncio")
),
)

def list_game_server_clusters(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,10 @@ def __init__(
client_cert_source_for_mtls=client_cert_source_func,
quota_project_id=client_options.quota_project_id,
client_info=client_info,
always_use_jwt_access=(
Transport == type(self).get_transport_class("grpc")
or Transport == type(self).get_transport_class("grpc_asyncio")
),
)

def list_game_server_configs(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,10 @@ def __init__(
client_cert_source_for_mtls=client_cert_source_func,
quota_project_id=client_options.quota_project_id,
client_info=client_info,
always_use_jwt_access=(
Transport == type(self).get_transport_class("grpc")
or Transport == type(self).get_transport_class("grpc_asyncio")
),
)

def list_game_server_deployments(
Expand Down
4 changes: 4 additions & 0 deletions google/cloud/gaming_v1beta/services/realms_service/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,10 @@ def __init__(
client_cert_source_for_mtls=client_cert_source_func,
quota_project_id=client_options.quota_project_id,
client_info=client_info,
always_use_jwt_access=(
Transport == type(self).get_transport_class("grpc")
or Transport == type(self).get_transport_class("grpc_asyncio")
),
)

def list_realms(
Expand Down
34 changes: 18 additions & 16 deletions tests/unit/gapic/gaming_v1/test_game_server_clusters_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,29 +133,14 @@ def test_game_server_clusters_service_client_from_service_account_info(client_cl
assert client.transport._host == "gameservices.googleapis.com:443"


@pytest.mark.parametrize(
"client_class",
[GameServerClustersServiceClient, GameServerClustersServiceAsyncClient,],
)
def test_game_server_clusters_service_client_service_account_always_use_jwt(
client_class,
):
with mock.patch.object(
service_account.Credentials, "with_always_use_jwt_access", create=True
) as use_jwt:
creds = service_account.Credentials(None, None, None)
client = client_class(credentials=creds)
use_jwt.assert_not_called()


@pytest.mark.parametrize(
"transport_class,transport_name",
[
(transports.GameServerClustersServiceGrpcTransport, "grpc"),
(transports.GameServerClustersServiceGrpcAsyncIOTransport, "grpc_asyncio"),
],
)
def test_game_server_clusters_service_client_service_account_always_use_jwt_true(
def test_game_server_clusters_service_client_service_account_always_use_jwt(
transport_class, transport_name
):
with mock.patch.object(
Expand All @@ -165,6 +150,13 @@ def test_game_server_clusters_service_client_service_account_always_use_jwt_true
transport = transport_class(credentials=creds, always_use_jwt_access=True)
use_jwt.assert_called_once_with(True)

with mock.patch.object(
service_account.Credentials, "with_always_use_jwt_access", create=True
) as use_jwt:
creds = service_account.Credentials(None, None, None)
transport = transport_class(credentials=creds, always_use_jwt_access=False)
use_jwt.assert_not_called()


@pytest.mark.parametrize(
"client_class",
Expand Down Expand Up @@ -254,6 +246,7 @@ def test_game_server_clusters_service_client_client_options(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
Expand All @@ -270,6 +263,7 @@ def test_game_server_clusters_service_client_client_options(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
Expand All @@ -286,6 +280,7 @@ def test_game_server_clusters_service_client_client_options(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
Expand Down Expand Up @@ -314,6 +309,7 @@ def test_game_server_clusters_service_client_client_options(
client_cert_source_for_mtls=None,
quota_project_id="octopus",
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand Down Expand Up @@ -390,6 +386,7 @@ def test_game_server_clusters_service_client_mtls_env_auto(
client_cert_source_for_mtls=expected_client_cert_source,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case ADC client cert is provided. Whether client cert is used depends on
Expand Down Expand Up @@ -423,6 +420,7 @@ def test_game_server_clusters_service_client_mtls_env_auto(
client_cert_source_for_mtls=expected_client_cert_source,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case client_cert_source and ADC client cert are not provided.
Expand All @@ -444,6 +442,7 @@ def test_game_server_clusters_service_client_mtls_env_auto(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand Down Expand Up @@ -478,6 +477,7 @@ def test_game_server_clusters_service_client_client_options_scopes(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand Down Expand Up @@ -512,6 +512,7 @@ def test_game_server_clusters_service_client_client_options_credentials_file(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand All @@ -531,6 +532,7 @@ def test_game_server_clusters_service_client_client_options_from_dict():
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand Down
34 changes: 18 additions & 16 deletions tests/unit/gapic/gaming_v1/test_game_server_configs_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,29 +131,14 @@ def test_game_server_configs_service_client_from_service_account_info(client_cla
assert client.transport._host == "gameservices.googleapis.com:443"


@pytest.mark.parametrize(
"client_class",
[GameServerConfigsServiceClient, GameServerConfigsServiceAsyncClient,],
)
def test_game_server_configs_service_client_service_account_always_use_jwt(
client_class,
):
with mock.patch.object(
service_account.Credentials, "with_always_use_jwt_access", create=True
) as use_jwt:
creds = service_account.Credentials(None, None, None)
client = client_class(credentials=creds)
use_jwt.assert_not_called()


@pytest.mark.parametrize(
"transport_class,transport_name",
[
(transports.GameServerConfigsServiceGrpcTransport, "grpc"),
(transports.GameServerConfigsServiceGrpcAsyncIOTransport, "grpc_asyncio"),
],
)
def test_game_server_configs_service_client_service_account_always_use_jwt_true(
def test_game_server_configs_service_client_service_account_always_use_jwt(
transport_class, transport_name
):
with mock.patch.object(
Expand All @@ -163,6 +148,13 @@ def test_game_server_configs_service_client_service_account_always_use_jwt_true(
transport = transport_class(credentials=creds, always_use_jwt_access=True)
use_jwt.assert_called_once_with(True)

with mock.patch.object(
service_account.Credentials, "with_always_use_jwt_access", create=True
) as use_jwt:
creds = service_account.Credentials(None, None, None)
transport = transport_class(credentials=creds, always_use_jwt_access=False)
use_jwt.assert_not_called()


@pytest.mark.parametrize(
"client_class",
Expand Down Expand Up @@ -252,6 +244,7 @@ def test_game_server_configs_service_client_client_options(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
Expand All @@ -268,6 +261,7 @@ def test_game_server_configs_service_client_client_options(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
Expand All @@ -284,6 +278,7 @@ def test_game_server_configs_service_client_client_options(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
Expand Down Expand Up @@ -312,6 +307,7 @@ def test_game_server_configs_service_client_client_options(
client_cert_source_for_mtls=None,
quota_project_id="octopus",
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand Down Expand Up @@ -388,6 +384,7 @@ def test_game_server_configs_service_client_mtls_env_auto(
client_cert_source_for_mtls=expected_client_cert_source,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case ADC client cert is provided. Whether client cert is used depends on
Expand Down Expand Up @@ -421,6 +418,7 @@ def test_game_server_configs_service_client_mtls_env_auto(
client_cert_source_for_mtls=expected_client_cert_source,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)

# Check the case client_cert_source and ADC client cert are not provided.
Expand All @@ -442,6 +440,7 @@ def test_game_server_configs_service_client_mtls_env_auto(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand Down Expand Up @@ -476,6 +475,7 @@ def test_game_server_configs_service_client_client_options_scopes(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand Down Expand Up @@ -510,6 +510,7 @@ def test_game_server_configs_service_client_client_options_credentials_file(
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand All @@ -529,6 +530,7 @@ def test_game_server_configs_service_client_client_options_from_dict():
client_cert_source_for_mtls=None,
quota_project_id=None,
client_info=transports.base.DEFAULT_CLIENT_INFO,
always_use_jwt_access=True,
)


Expand Down
Loading

0 comments on commit 9d4ccd1

Please sign in to comment.