Skip to content
This repository was archived by the owner on Jul 6, 2023. It is now read-only.

Commit 674dd85

Browse files
fix: enable self signed jwt for grpc (#91)
PiperOrigin-RevId: 386504689 Source-Link: googleapis/googleapis@762094a Source-Link: https://github.com/googleapis/googleapis-gen/commit/6bfc480e1a161d5de121c2bcc3745885d33b265a
1 parent 9998235 commit 674dd85

File tree

4 files changed

+44
-32
lines changed

4 files changed

+44
-32
lines changed

google/cloud/security/privateca_v1/services/certificate_authority_service/client.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,10 @@ def __init__(
450450
client_cert_source_for_mtls=client_cert_source_func,
451451
quota_project_id=client_options.quota_project_id,
452452
client_info=client_info,
453+
always_use_jwt_access=(
454+
Transport == type(self).get_transport_class("grpc")
455+
or Transport == type(self).get_transport_class("grpc_asyncio")
456+
),
453457
)
454458

455459
def create_certificate(

google/cloud/security/privateca_v1beta1/services/certificate_authority_service/client.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@ def __init__(
426426
client_cert_source_for_mtls=client_cert_source_func,
427427
quota_project_id=client_options.quota_project_id,
428428
client_info=client_info,
429+
always_use_jwt_access=(
430+
Transport == type(self).get_transport_class("grpc")
431+
or Transport == type(self).get_transport_class("grpc_asyncio")
432+
),
429433
)
430434

431435
def create_certificate(

tests/unit/gapic/privateca_v1/test_certificate_authority_service.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -139,29 +139,14 @@ def test_certificate_authority_service_client_from_service_account_info(client_c
139139
assert client.transport._host == "privateca.googleapis.com:443"
140140

141141

142-
@pytest.mark.parametrize(
143-
"client_class",
144-
[CertificateAuthorityServiceClient, CertificateAuthorityServiceAsyncClient,],
145-
)
146-
def test_certificate_authority_service_client_service_account_always_use_jwt(
147-
client_class,
148-
):
149-
with mock.patch.object(
150-
service_account.Credentials, "with_always_use_jwt_access", create=True
151-
) as use_jwt:
152-
creds = service_account.Credentials(None, None, None)
153-
client = client_class(credentials=creds)
154-
use_jwt.assert_not_called()
155-
156-
157142
@pytest.mark.parametrize(
158143
"transport_class,transport_name",
159144
[
160145
(transports.CertificateAuthorityServiceGrpcTransport, "grpc"),
161146
(transports.CertificateAuthorityServiceGrpcAsyncIOTransport, "grpc_asyncio"),
162147
],
163148
)
164-
def test_certificate_authority_service_client_service_account_always_use_jwt_true(
149+
def test_certificate_authority_service_client_service_account_always_use_jwt(
165150
transport_class, transport_name
166151
):
167152
with mock.patch.object(
@@ -171,6 +156,13 @@ def test_certificate_authority_service_client_service_account_always_use_jwt_tru
171156
transport = transport_class(credentials=creds, always_use_jwt_access=True)
172157
use_jwt.assert_called_once_with(True)
173158

159+
with mock.patch.object(
160+
service_account.Credentials, "with_always_use_jwt_access", create=True
161+
) as use_jwt:
162+
creds = service_account.Credentials(None, None, None)
163+
transport = transport_class(credentials=creds, always_use_jwt_access=False)
164+
use_jwt.assert_not_called()
165+
174166

175167
@pytest.mark.parametrize(
176168
"client_class",
@@ -260,6 +252,7 @@ def test_certificate_authority_service_client_client_options(
260252
client_cert_source_for_mtls=None,
261253
quota_project_id=None,
262254
client_info=transports.base.DEFAULT_CLIENT_INFO,
255+
always_use_jwt_access=True,
263256
)
264257

265258
# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
@@ -276,6 +269,7 @@ def test_certificate_authority_service_client_client_options(
276269
client_cert_source_for_mtls=None,
277270
quota_project_id=None,
278271
client_info=transports.base.DEFAULT_CLIENT_INFO,
272+
always_use_jwt_access=True,
279273
)
280274

281275
# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
@@ -292,6 +286,7 @@ def test_certificate_authority_service_client_client_options(
292286
client_cert_source_for_mtls=None,
293287
quota_project_id=None,
294288
client_info=transports.base.DEFAULT_CLIENT_INFO,
289+
always_use_jwt_access=True,
295290
)
296291

297292
# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
@@ -320,6 +315,7 @@ def test_certificate_authority_service_client_client_options(
320315
client_cert_source_for_mtls=None,
321316
quota_project_id="octopus",
322317
client_info=transports.base.DEFAULT_CLIENT_INFO,
318+
always_use_jwt_access=True,
323319
)
324320

325321

@@ -396,6 +392,7 @@ def test_certificate_authority_service_client_mtls_env_auto(
396392
client_cert_source_for_mtls=expected_client_cert_source,
397393
quota_project_id=None,
398394
client_info=transports.base.DEFAULT_CLIENT_INFO,
395+
always_use_jwt_access=True,
399396
)
400397

401398
# Check the case ADC client cert is provided. Whether client cert is used depends on
@@ -429,6 +426,7 @@ def test_certificate_authority_service_client_mtls_env_auto(
429426
client_cert_source_for_mtls=expected_client_cert_source,
430427
quota_project_id=None,
431428
client_info=transports.base.DEFAULT_CLIENT_INFO,
429+
always_use_jwt_access=True,
432430
)
433431

434432
# Check the case client_cert_source and ADC client cert are not provided.
@@ -450,6 +448,7 @@ def test_certificate_authority_service_client_mtls_env_auto(
450448
client_cert_source_for_mtls=None,
451449
quota_project_id=None,
452450
client_info=transports.base.DEFAULT_CLIENT_INFO,
451+
always_use_jwt_access=True,
453452
)
454453

455454

@@ -484,6 +483,7 @@ def test_certificate_authority_service_client_client_options_scopes(
484483
client_cert_source_for_mtls=None,
485484
quota_project_id=None,
486485
client_info=transports.base.DEFAULT_CLIENT_INFO,
486+
always_use_jwt_access=True,
487487
)
488488

489489

@@ -518,6 +518,7 @@ def test_certificate_authority_service_client_client_options_credentials_file(
518518
client_cert_source_for_mtls=None,
519519
quota_project_id=None,
520520
client_info=transports.base.DEFAULT_CLIENT_INFO,
521+
always_use_jwt_access=True,
521522
)
522523

523524

@@ -537,6 +538,7 @@ def test_certificate_authority_service_client_client_options_from_dict():
537538
client_cert_source_for_mtls=None,
538539
quota_project_id=None,
539540
client_info=transports.base.DEFAULT_CLIENT_INFO,
541+
always_use_jwt_access=True,
540542
)
541543

542544

tests/unit/gapic/privateca_v1beta1/test_certificate_authority_service.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -139,29 +139,14 @@ def test_certificate_authority_service_client_from_service_account_info(client_c
139139
assert client.transport._host == "privateca.googleapis.com:443"
140140

141141

142-
@pytest.mark.parametrize(
143-
"client_class",
144-
[CertificateAuthorityServiceClient, CertificateAuthorityServiceAsyncClient,],
145-
)
146-
def test_certificate_authority_service_client_service_account_always_use_jwt(
147-
client_class,
148-
):
149-
with mock.patch.object(
150-
service_account.Credentials, "with_always_use_jwt_access", create=True
151-
) as use_jwt:
152-
creds = service_account.Credentials(None, None, None)
153-
client = client_class(credentials=creds)
154-
use_jwt.assert_not_called()
155-
156-
157142
@pytest.mark.parametrize(
158143
"transport_class,transport_name",
159144
[
160145
(transports.CertificateAuthorityServiceGrpcTransport, "grpc"),
161146
(transports.CertificateAuthorityServiceGrpcAsyncIOTransport, "grpc_asyncio"),
162147
],
163148
)
164-
def test_certificate_authority_service_client_service_account_always_use_jwt_true(
149+
def test_certificate_authority_service_client_service_account_always_use_jwt(
165150
transport_class, transport_name
166151
):
167152
with mock.patch.object(
@@ -171,6 +156,13 @@ def test_certificate_authority_service_client_service_account_always_use_jwt_tru
171156
transport = transport_class(credentials=creds, always_use_jwt_access=True)
172157
use_jwt.assert_called_once_with(True)
173158

159+
with mock.patch.object(
160+
service_account.Credentials, "with_always_use_jwt_access", create=True
161+
) as use_jwt:
162+
creds = service_account.Credentials(None, None, None)
163+
transport = transport_class(credentials=creds, always_use_jwt_access=False)
164+
use_jwt.assert_not_called()
165+
174166

175167
@pytest.mark.parametrize(
176168
"client_class",
@@ -260,6 +252,7 @@ def test_certificate_authority_service_client_client_options(
260252
client_cert_source_for_mtls=None,
261253
quota_project_id=None,
262254
client_info=transports.base.DEFAULT_CLIENT_INFO,
255+
always_use_jwt_access=True,
263256
)
264257

265258
# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
@@ -276,6 +269,7 @@ def test_certificate_authority_service_client_client_options(
276269
client_cert_source_for_mtls=None,
277270
quota_project_id=None,
278271
client_info=transports.base.DEFAULT_CLIENT_INFO,
272+
always_use_jwt_access=True,
279273
)
280274

281275
# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is
@@ -292,6 +286,7 @@ def test_certificate_authority_service_client_client_options(
292286
client_cert_source_for_mtls=None,
293287
quota_project_id=None,
294288
client_info=transports.base.DEFAULT_CLIENT_INFO,
289+
always_use_jwt_access=True,
295290
)
296291

297292
# Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has
@@ -320,6 +315,7 @@ def test_certificate_authority_service_client_client_options(
320315
client_cert_source_for_mtls=None,
321316
quota_project_id="octopus",
322317
client_info=transports.base.DEFAULT_CLIENT_INFO,
318+
always_use_jwt_access=True,
323319
)
324320

325321

@@ -396,6 +392,7 @@ def test_certificate_authority_service_client_mtls_env_auto(
396392
client_cert_source_for_mtls=expected_client_cert_source,
397393
quota_project_id=None,
398394
client_info=transports.base.DEFAULT_CLIENT_INFO,
395+
always_use_jwt_access=True,
399396
)
400397

401398
# Check the case ADC client cert is provided. Whether client cert is used depends on
@@ -429,6 +426,7 @@ def test_certificate_authority_service_client_mtls_env_auto(
429426
client_cert_source_for_mtls=expected_client_cert_source,
430427
quota_project_id=None,
431428
client_info=transports.base.DEFAULT_CLIENT_INFO,
429+
always_use_jwt_access=True,
432430
)
433431

434432
# Check the case client_cert_source and ADC client cert are not provided.
@@ -450,6 +448,7 @@ def test_certificate_authority_service_client_mtls_env_auto(
450448
client_cert_source_for_mtls=None,
451449
quota_project_id=None,
452450
client_info=transports.base.DEFAULT_CLIENT_INFO,
451+
always_use_jwt_access=True,
453452
)
454453

455454

@@ -484,6 +483,7 @@ def test_certificate_authority_service_client_client_options_scopes(
484483
client_cert_source_for_mtls=None,
485484
quota_project_id=None,
486485
client_info=transports.base.DEFAULT_CLIENT_INFO,
486+
always_use_jwt_access=True,
487487
)
488488

489489

@@ -518,6 +518,7 @@ def test_certificate_authority_service_client_client_options_credentials_file(
518518
client_cert_source_for_mtls=None,
519519
quota_project_id=None,
520520
client_info=transports.base.DEFAULT_CLIENT_INFO,
521+
always_use_jwt_access=True,
521522
)
522523

523524

@@ -537,6 +538,7 @@ def test_certificate_authority_service_client_client_options_from_dict():
537538
client_cert_source_for_mtls=None,
538539
quota_project_id=None,
539540
client_info=transports.base.DEFAULT_CLIENT_INFO,
541+
always_use_jwt_access=True,
540542
)
541543

542544

0 commit comments

Comments
 (0)