Skip to content

Commit 1ee77db

Browse files
authored
Merge branch 'main' into add-cumulative-hasher-grpc-flow
2 parents f6c33a1 + 2d9d01c commit 1ee77db

5 files changed

Lines changed: 35 additions & 1 deletion

File tree

google-auth-library-java/oauth2_http/java/com/google/auth/oauth2/UserCredentials.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ private InputStream getUserCredentialsStream() throws IOException {
328328
json.put("client_secret", clientSecret);
329329
}
330330
if (quotaProjectId != null) {
331-
json.put("quota_project", clientSecret);
331+
json.put("quota_project_id", quotaProjectId);
332332
}
333333
json.setFactory(JSON_FACTORY);
334334
String text = json.toPrettyString();

google-auth-library-java/oauth2_http/javatests/com/google/auth/oauth2/DefaultCredentialsProviderTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,7 @@ void getDefaultCredentials_GdchServiceAccount() throws IOException {
387387
assertNotNull(((GdchCredentials) defaultCredentials).getApiAudience());
388388
}
389389

390+
@Test
390391
void getDefaultCredentials_quota_project() throws IOException {
391392
InputStream userStream =
392393
UserCredentialsTest.writeUserStream(

google-auth-library-java/oauth2_http/javatests/com/google/auth/oauth2/ServiceAccountCredentialsTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1762,6 +1762,17 @@ void createScopes_existingAccessTokenInvalidated() throws IOException {
17621762
assertNull(newAccessToken);
17631763
}
17641764

1765+
@Test
1766+
void getRequestMetadata_withMultipleScopes_selfSignedJWT() throws IOException {
1767+
List<String> scopes = Arrays.asList("scope1", "scope2");
1768+
ServiceAccountCredentials credentials =
1769+
createDefaultBuilderWithKey(OAuth2Utils.privateKeyFromPkcs8(PRIVATE_KEY_PKCS8))
1770+
.setScopes(scopes)
1771+
.setUseJwtAccessWithScope(true)
1772+
.build();
1773+
verifyJwtAccess(credentials.getRequestMetadata(CALL_URI), "scope1 scope2");
1774+
}
1775+
17651776
private void verifyJwtAccess(Map<String, List<String>> metadata, String expectedScopeClaim)
17661777
throws IOException {
17671778
assertNotNull(metadata);
@@ -1777,6 +1788,8 @@ private void verifyJwtAccess(Map<String, List<String>> metadata, String expected
17771788
assertNotNull(assertion, "Bearer assertion not found");
17781789
JsonWebSignature signature =
17791790
JsonWebSignature.parse(GsonFactory.getDefaultInstance(), assertion);
1791+
assertEquals("RS256", signature.getHeader().getAlgorithm());
1792+
assertEquals("JWT", signature.getHeader().getType());
17801793
assertEquals(CLIENT_EMAIL, signature.getPayload().getIssuer());
17811794
assertEquals(CLIENT_EMAIL, signature.getPayload().getSubject());
17821795
if (expectedScopeClaim != null) {
@@ -1787,6 +1800,14 @@ private void verifyJwtAccess(Map<String, List<String>> metadata, String expected
17871800
assertFalse(signature.getPayload().containsKey("scope"));
17881801
}
17891802
assertEquals(PRIVATE_KEY_ID, signature.getHeader().getKeyId());
1803+
1804+
Long iat = signature.getPayload().getIssuedAtTimeSeconds();
1805+
Long exp = signature.getPayload().getExpirationTimeSeconds();
1806+
assertNotNull(iat);
1807+
assertNotNull(exp);
1808+
assertEquals(3600L, exp - iat);
1809+
long currentTimeSecs = System.currentTimeMillis() / 1000;
1810+
assertTrue(Math.abs(currentTimeSecs - iat) < 60);
17901811
}
17911812

17921813
static GenericJson writeServiceAccountJson(

google-auth-library-java/oauth2_http/javatests/com/google/auth/oauth2/ServiceAccountJwtAccessCredentialsTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -914,6 +914,8 @@ private void verifyJwtAccess(Map<String, List<String>> metadata, URI expectedAud
914914
}
915915
assertNotNull(assertion, "Bearer assertion not found");
916916
JsonWebSignature signature = JsonWebSignature.parse(JSON_FACTORY, assertion);
917+
assertEquals("RS256", signature.getHeader().getAlgorithm());
918+
assertEquals("JWT", signature.getHeader().getType());
917919
assertEquals(
918920
ServiceAccountJwtAccessCredentialsTest.SA_CLIENT_EMAIL, signature.getPayload().getIssuer());
919921
assertEquals(
@@ -922,6 +924,14 @@ private void verifyJwtAccess(Map<String, List<String>> metadata, URI expectedAud
922924
assertEquals(expectedAudience.toString(), signature.getPayload().getAudience());
923925
assertEquals(
924926
ServiceAccountJwtAccessCredentialsTest.SA_PRIVATE_KEY_ID, signature.getHeader().getKeyId());
927+
928+
Long iat = signature.getPayload().getIssuedAtTimeSeconds();
929+
Long exp = signature.getPayload().getExpirationTimeSeconds();
930+
assertNotNull(iat);
931+
assertNotNull(exp);
932+
assertEquals(3600L, exp - iat);
933+
long currentTimeSecs = System.currentTimeMillis() / 1000;
934+
assertTrue(Math.abs(currentTimeSecs - iat) < 60);
925935
}
926936

927937
private static void testFromStreamException(InputStream stream, String expectedMessageContent) {

google-auth-library-java/oauth2_http/javatests/com/google/auth/oauth2/UserCredentialsTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,7 @@ void saveAndRestoreUserCredential_saveAndRestored_doesNotThrow() throws IOExcept
635635
.setClientId(CLIENT_ID)
636636
.setClientSecret(CLIENT_SECRET)
637637
.setRefreshToken(REFRESH_TOKEN)
638+
.setQuotaProjectId(QUOTA_PROJECT)
638639
.build();
639640

640641
File file = File.createTempFile("GOOGLE_APPLICATION_CREDENTIALS", null, null);
@@ -649,6 +650,7 @@ void saveAndRestoreUserCredential_saveAndRestored_doesNotThrow() throws IOExcept
649650
assertEquals(userCredentials.getClientId(), restoredCredentials.getClientId());
650651
assertEquals(userCredentials.getClientSecret(), restoredCredentials.getClientSecret());
651652
assertEquals(userCredentials.getRefreshToken(), restoredCredentials.getRefreshToken());
653+
assertEquals(userCredentials.getQuotaProjectId(), restoredCredentials.getQuotaProjectId());
652654
}
653655
}
654656

0 commit comments

Comments
 (0)