@@ -609,7 +609,10 @@ public boolean isRequired(HttpResponse response) {
609609 response = request .execute ();
610610 } catch (IOException e ) {
611611 throw new IOException (
612- String .format ("Error getting access token for service account: %s" , e .getMessage ()), e );
612+ String .format (
613+ "Error getting access token for service account: %s, iss: %s" ,
614+ e .getMessage (), getIssuer ()),
615+ e );
613616 }
614617
615618 GenericData responseData = response .parseAs (GenericData .class );
@@ -648,7 +651,16 @@ public IdToken idTokenWithAudience(String targetAudience, List<Option> options)
648651 HttpRequestFactory requestFactory = transportFactory .create ().createRequestFactory ();
649652 HttpRequest request = requestFactory .buildPostRequest (new GenericUrl (tokenServerUri ), content );
650653 request .setParser (new JsonObjectParser (jsonFactory ));
651- HttpResponse response = request .execute ();
654+ HttpResponse response ;
655+ try {
656+ response = request .execute ();
657+ } catch (IOException e ) {
658+ throw new IOException (
659+ String .format (
660+ "Error getting id token for service account: %s, iss: %s" ,
661+ e .getMessage (), getIssuer ()),
662+ e );
663+ }
652664
653665 GenericData responseData = response .parseAs (GenericData .class );
654666 String rawToken = OAuth2Utils .validateString (responseData , "id_token" , PARSE_ERROR_PREFIX );
@@ -755,6 +767,10 @@ public final URI getTokenServerUri() {
755767 return tokenServerUri ;
756768 }
757769
770+ private String getIssuer () {
771+ return this .clientEmail ;
772+ }
773+
758774 @ VisibleForTesting
759775 int getLifetime () {
760776 return lifetime ;
@@ -787,7 +803,7 @@ public byte[] sign(byte[] toSign) {
787803 @ Override
788804 public JwtCredentials jwtWithClaims (JwtClaims newClaims ) {
789805 JwtClaims .Builder claimsBuilder =
790- JwtClaims .newBuilder ().setIssuer (clientEmail ).setSubject (clientEmail );
806+ JwtClaims .newBuilder ().setIssuer (getIssuer () ).setSubject (clientEmail );
791807 return JwtCredentials .newBuilder ()
792808 .setPrivateKey (privateKey )
793809 .setPrivateKeyId (privateKeyId )
@@ -862,7 +878,7 @@ String createAssertion(JsonFactory jsonFactory, long currentTime, String audienc
862878 header .setKeyId (privateKeyId );
863879
864880 JsonWebToken .Payload payload = new JsonWebToken .Payload ();
865- payload .setIssuer (clientEmail );
881+ payload .setIssuer (getIssuer () );
866882 payload .setIssuedAtTimeSeconds (currentTime / 1000 );
867883 payload .setExpirationTimeSeconds (currentTime / 1000 + this .lifetime );
868884 payload .setSubject (serviceAccountUser );
@@ -898,7 +914,7 @@ String createAssertionForIdToken(
898914 header .setKeyId (privateKeyId );
899915
900916 JsonWebToken .Payload payload = new JsonWebToken .Payload ();
901- payload .setIssuer (clientEmail );
917+ payload .setIssuer (getIssuer () );
902918 payload .setIssuedAtTimeSeconds (currentTime / 1000 );
903919 payload .setExpirationTimeSeconds (currentTime / 1000 + this .lifetime );
904920 payload .setSubject (serviceAccountUser );
0 commit comments