From 9d7c780a8fc1784f06f05190beb5ed714275988e Mon Sep 17 00:00:00 2001 From: Sijun Liu Date: Thu, 31 Aug 2023 14:14:03 -0700 Subject: [PATCH] fix: missing ssj for impersonate cred --- google/auth/impersonated_credentials.py | 7 +++++++ system_tests/secrets.tar.enc | Bin 10324 -> 10324 bytes tests/test_impersonated_credentials.py | 9 +++++++++ 3 files changed, 16 insertions(+) diff --git a/google/auth/impersonated_credentials.py b/google/auth/impersonated_credentials.py index 828465367..c272a3ca2 100644 --- a/google/auth/impersonated_credentials.py +++ b/google/auth/impersonated_credentials.py @@ -226,6 +226,13 @@ def __init__( # their original scopes modified. if isinstance(self._source_credentials, credentials.Scoped): self._source_credentials = self._source_credentials.with_scopes(_IAM_SCOPE) + # If the source credential is service account and self signed jwt + # is needed, we need to create a jwt credential inside it + if ( + hasattr(self._source_credentials, "_create_self_signed_jwt") + and self._source_credentials._always_use_jwt_access + ): + self._source_credentials._create_self_signed_jwt(None) self._target_principal = target_principal self._target_scopes = target_scopes self._delegates = delegates diff --git a/system_tests/secrets.tar.enc b/system_tests/secrets.tar.enc index 5485e9242ad16076c7cec7ff119c8175733c9176..c1792fbd9fa93c7be906b26738ffb3be57698fa5 100644 GIT binary patch literal 10324 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 mbg7HflT%c(%Ik*Dr%