Skip to content

Commit 33bfe7a

Browse files
authored
feat: setting the audience to always point to google token endpoint (#833)
* feat: setting the audience to always point to google token endpoint
1 parent f67bb8c commit 33bfe7a

File tree

3 files changed

+12
-43
lines changed

3 files changed

+12
-43
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@ target/
55
.classpath
66
.project
77
.settings
8+
.factorypath
89

910
# Intellij
1011
*.iml
1112
.idea/
1213

1314
# VS Code
14-
.vscode/
15+
.vscode/
16+
17+
# MacOS
18+
.DS_Store

oauth2_http/java/com/google/auth/oauth2/ServiceAccountCredentials.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ public boolean createScopedRequired() {
567567
public AccessToken refreshAccessToken() throws IOException {
568568
JsonFactory jsonFactory = OAuth2Utils.JSON_FACTORY;
569569
long currentTime = clock.currentTimeMillis();
570-
String assertion = createAssertion(jsonFactory, currentTime, tokenServerUri.toString());
570+
String assertion = createAssertion(jsonFactory, currentTime);
571571

572572
GenericData tokenRequest = new GenericData();
573573
tokenRequest.set("grant_type", GRANT_TYPE);
@@ -882,8 +882,7 @@ public boolean equals(Object obj) {
882882
&& Objects.equals(this.useJwtAccessWithScope, other.useJwtAccessWithScope);
883883
}
884884

885-
String createAssertion(JsonFactory jsonFactory, long currentTime, String audience)
886-
throws IOException {
885+
String createAssertion(JsonFactory jsonFactory, long currentTime) throws IOException {
887886
JsonWebSignature.Header header = new JsonWebSignature.Header();
888887
header.setAlgorithm("RS256");
889888
header.setType("JWT");
@@ -900,13 +899,9 @@ String createAssertion(JsonFactory jsonFactory, long currentTime, String audienc
900899
payload.put("scope", Joiner.on(' ').join(scopes));
901900
}
902901

903-
if (audience == null) {
904-
payload.setAudience(OAuth2Utils.TOKEN_SERVER_URI.toString());
905-
} else {
906-
payload.setAudience(audience);
907-
}
908-
902+
payload.setAudience(OAuth2Utils.TOKEN_SERVER_URI.toString());
909903
String assertion;
904+
910905
try {
911906
assertion = JsonWebSignature.signUsingRsaSha256(privateKey, jsonFactory, header, payload);
912907
} catch (GeneralSecurityException e) {

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

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ void createAssertion_correct() throws IOException {
242242

243243
JsonFactory jsonFactory = OAuth2Utils.JSON_FACTORY;
244244
long currentTimeMillis = Clock.SYSTEM.currentTimeMillis();
245-
String assertion = credentials.createAssertion(jsonFactory, currentTimeMillis, null);
245+
String assertion = credentials.createAssertion(jsonFactory, currentTimeMillis);
246246

247247
JsonWebSignature signature = JsonWebSignature.parse(jsonFactory, assertion);
248248
JsonWebToken.Payload payload = signature.getPayload();
@@ -272,7 +272,7 @@ void createAssertion_defaultScopes_correct() throws IOException {
272272

273273
JsonFactory jsonFactory = OAuth2Utils.JSON_FACTORY;
274274
long currentTimeMillis = Clock.SYSTEM.currentTimeMillis();
275-
String assertion = credentials.createAssertion(jsonFactory, currentTimeMillis, null);
275+
String assertion = credentials.createAssertion(jsonFactory, currentTimeMillis);
276276

277277
JsonWebSignature signature = JsonWebSignature.parse(jsonFactory, assertion);
278278
JsonWebToken.Payload payload = signature.getPayload();
@@ -290,7 +290,7 @@ void createAssertion_custom_lifetime() throws IOException {
290290

291291
JsonFactory jsonFactory = OAuth2Utils.JSON_FACTORY;
292292
long currentTimeMillis = Clock.SYSTEM.currentTimeMillis();
293-
String assertion = credentials.createAssertion(jsonFactory, currentTimeMillis, null);
293+
String assertion = credentials.createAssertion(jsonFactory, currentTimeMillis);
294294

295295
JsonWebSignature signature = JsonWebSignature.parse(jsonFactory, assertion);
296296
JsonWebToken.Payload payload = signature.getPayload();
@@ -372,36 +372,6 @@ void createAssertionForIdToken_incorrect() throws IOException {
372372
assertEquals(USER, payload.getSubject());
373373
}
374374

375-
@Test
376-
void createAssertion_withTokenUri_correct() throws IOException {
377-
PrivateKey privateKey = ServiceAccountCredentials.privateKeyFromPkcs8(PRIVATE_KEY_PKCS8);
378-
List<String> scopes = Arrays.asList("scope1", "scope2");
379-
ServiceAccountCredentials credentials =
380-
ServiceAccountCredentials.newBuilder()
381-
.setClientId(CLIENT_ID)
382-
.setClientEmail(CLIENT_EMAIL)
383-
.setPrivateKey(privateKey)
384-
.setPrivateKeyId(PRIVATE_KEY_ID)
385-
.setScopes(scopes)
386-
.setServiceAccountUser(USER)
387-
.setProjectId(PROJECT_ID)
388-
.build();
389-
390-
JsonFactory jsonFactory = OAuth2Utils.JSON_FACTORY;
391-
long currentTimeMillis = Clock.SYSTEM.currentTimeMillis();
392-
String assertion =
393-
credentials.createAssertion(jsonFactory, currentTimeMillis, "https://foo.com/bar");
394-
395-
JsonWebSignature signature = JsonWebSignature.parse(jsonFactory, assertion);
396-
JsonWebToken.Payload payload = signature.getPayload();
397-
assertEquals(CLIENT_EMAIL, payload.getIssuer());
398-
assertEquals("https://foo.com/bar", payload.getAudience());
399-
assertEquals(currentTimeMillis / 1000, (long) payload.getIssuedAtTimeSeconds());
400-
assertEquals(currentTimeMillis / 1000 + 3600, (long) payload.getExpirationTimeSeconds());
401-
assertEquals(USER, payload.getSubject());
402-
assertEquals(String.join(" ", scopes), payload.get("scope"));
403-
}
404-
405375
@Test
406376
void createdScoped_enablesAccessTokens() throws IOException {
407377
MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory();

0 commit comments

Comments
 (0)