From 2f6817821c05218a9d65a7478918b391f41d8035 Mon Sep 17 00:00:00 2001 From: Vishal Dalwadi Date: Thu, 31 Jul 2025 21:58:45 +0530 Subject: [PATCH] fix(go): avoid panic on client_email missing. --- pro/idp/google/google.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pro/idp/google/google.go b/pro/idp/google/google.go index fc2246a0..fe48da4a 100644 --- a/pro/idp/google/google.go +++ b/pro/idp/google/google.go @@ -29,10 +29,18 @@ func NewGoogleWorkspaceClient(adminEmail, creds string) (*Client, error) { return nil, err } + var targetPrincipal string + _, ok := credsJsonMap["client_email"] + if !ok { + return nil, errors.New("invalid service account credentials: missing client_email field") + } else { + targetPrincipal = credsJsonMap["client_email"].(string) + } + source, err := impersonate.CredentialsTokenSource( context.TODO(), impersonate.CredentialsConfig{ - TargetPrincipal: credsJsonMap["client_email"].(string), + TargetPrincipal: targetPrincipal, Scopes: []string{ admindir.AdminDirectoryUserReadonlyScope, admindir.AdminDirectoryGroupReadonlyScope,