Skip to content

Commit 42d4df6

Browse files
authored
Merge branch 'main' into sajwtcreds-universe-domain
2 parents fc405c3 + eccd3a8 commit 42d4df6

File tree

6 files changed

+31
-19
lines changed

6 files changed

+31
-19
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,9 +407,9 @@ public IdToken idTokenWithAudience(String targetAudience, List<IdTokenProvider.O
407407
documentUrl.set("format", "full");
408408
}
409409
if (options.contains(IdTokenProvider.Option.LICENSES_TRUE)) {
410-
// license will only get returned if format is also full
410+
// licenses will only get returned if format is also full
411411
documentUrl.set("format", "full");
412-
documentUrl.set("license", "TRUE");
412+
documentUrl.set("licenses", "TRUE");
413413
}
414414
}
415415
documentUrl.set("audience", targetAudience);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ public URL getAuthorizationUrl(
206206
url.put("state", state);
207207
}
208208
url.put("access_type", "offline");
209-
url.put("approval_prompt", "force");
209+
url.put("prompt", "consent");
210210
if (userId != null) {
211211
url.put("login_hint", userId);
212212
}

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

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -103,19 +103,19 @@ public class ComputeEngineCredentialsTest extends BaseSerializationTest {
103103
+ "20iLCJzdWIiOiIxMTIxNzkwNjI3MjAzOTEzMDU4ODUifQ.redacted";
104104

105105
// Id Token which includes GCE extended claims and any VM License data (if applicable)
106-
public static final String FULL_ID_TOKEN_WITH_LICENSE =
106+
public static final String FULL_ID_TOKEN_WITH_LICENSES =
107107
"eyJhbGciOiJSUzI1NiIsImtpZCI6ImRmMzc1ODkwOG"
108108
+ "I3OTIyOTNhZDk3N2EwYjk5MWQ5OGE3N2Y0ZWVlY2QiLCJ0eXAiOiJKV1QifQ.ew0KICAiYXVkIjogImh0dHBzOi8"
109109
+ "vZm9vLmJhciIsDQogICJhenAiOiAiMTEyMTc5MDYyNzIwMzkxMzA1ODg1IiwNCiAgImVtYWlsIjogIjEyMzQ1Ni1"
110110
+ "jb21wdXRlQGRldmVsb3Blci5nc2VydmljZWFjY291bnQuY29tIiwNCiAgImVtYWlsX3ZlcmlmaWVkIjogdHJ1ZSw"
111111
+ "NCiAgImV4cCI6IDE1NjQ1MTk0OTYsDQogICJnb29nbGUiOiB7DQogICAgImNvbXB1dGVfZW5naW5lIjogew0KICA"
112112
+ "gICAgImluc3RhbmNlX2NyZWF0aW9uX3RpbWVzdGFtcCI6IDE1NjMyMzA5MDcsDQogICAgICAiaW5zdGFuY2VfaWQ"
113-
+ "iOiAiMzQ5Nzk3NDM5MzQ0MTE3OTI0MyIsDQogICAgICAiaW5zdGFuY2VfbmFtZSI6ICJpYW0iLA0KICAgICAgInB"
114-
+ "yb2plY3RfaWQiOiAiZm9vLWJhci04MjAiLA0KICAgICAgInByb2plY3RfbnVtYmVyIjogMTA3MTI4NDE4NDQzNiw"
115-
+ "NCiAgICAgICJ6b25lIjogInVzLWNlbnRyYWwxLWEiDQogICAgfSwNCiAgICAibGljZW5zZSI6IFsNCiAgICAgICA"
116-
+ "iTElDRU5TRV8xIiwNCiAgICAgICAiTElDRU5TRV8yIg0KICAgIF0NCiAgfSwNCiAgImlhdCI6IDE1NjQ1MTU4OTY"
117-
+ "sDQogICJpc3MiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tIiwNCiAgInN1YiI6ICIxMTIxNzkwNjI3MjA"
118-
+ "zOTEzMDU4ODUiDQp9.redacted";
113+
+ "iOiAiMzQ5Nzk3NDM5MzQ0MTE3OTI0MyIsDQogICAgICAiaW5zdGFuY2VfbmFtZSI6ICJpYW0iLA0KICAgICAgImx"
114+
+ "pY2Vuc2VfaWQiOiBbDQogICAgICAgICIxMDAxMDAwIiwNCiAgICAgICAgIjEwMDEwMDEiLA0KICAgICAgICAiMTA"
115+
+ "wMTAwOCINCiAgICAgIF0sDQogICAgICAicHJvamVjdF9pZCI6ICJmb28tYmFyLTgyMCIsDQogICAgICAicHJvamV"
116+
+ "jdF9udW1iZXIiOiAxMDcxMjg0MTg0NDM2LA0KICAgICAgInpvbmUiOiAidXMtY2VudHJhbDEtYSINCiAgICB9DQo"
117+
+ "gIH0sDQogICJpYXQiOiAxNTY0NTE1ODk2LA0KICAiaXNzIjogImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSI"
118+
+ "sDQogICJzdWIiOiAiMTEyMTc5MDYyNzIwMzkxMzA1ODg1Ig0KfQ.redacted";
119119
private static final String ACCESS_TOKEN = "1/MkSJoj1xsli0AccessToken_NKPY2";
120120
private static final List<String> SCOPES = Arrays.asList("foo", "bar");
121121
private static final String ACCESS_TOKEN_WITH_SCOPES = "1/MkSJoj1xsli0AccessTokenScoped_NKPY2";
@@ -1066,7 +1066,8 @@ public void idTokenWithAudience_full() throws IOException {
10661066
tokenCredential.refresh();
10671067
Payload p = tokenCredential.getIdToken().getJsonWebSignature().getPayload();
10681068
assertTrue("Full ID Token format not provided", p.containsKey("google"));
1069-
ArrayMap<String, ArrayMap> googleClaim = (ArrayMap<String, ArrayMap>) p.get("google");
1069+
ArrayMap<String, ArrayMap<String, ?>> googleClaim =
1070+
(ArrayMap<String, ArrayMap<String, ?>>) p.get("google");
10701071
assertTrue(googleClaim.containsKey("compute_engine"));
10711072

10721073
// verify metrics header
@@ -1076,7 +1077,7 @@ public void idTokenWithAudience_full() throws IOException {
10761077

10771078
@Test
10781079
@SuppressWarnings("unchecked")
1079-
public void idTokenWithAudience_license() throws IOException {
1080+
public void idTokenWithAudience_licenses() throws IOException {
10801081
MockMetadataServerTransportFactory transportFactory = new MockMetadataServerTransportFactory();
10811082
ComputeEngineCredentials credentials =
10821083
ComputeEngineCredentials.newBuilder().setHttpTransportFactory(transportFactory).build();
@@ -1093,8 +1094,12 @@ public void idTokenWithAudience_license() throws IOException {
10931094
tokenCredential.refresh();
10941095
Payload p = tokenCredential.getIdToken().getJsonWebSignature().getPayload();
10951096
assertTrue("Full ID Token format not provided", p.containsKey("google"));
1096-
ArrayMap<String, ArrayMap> googleClaim = (ArrayMap<String, ArrayMap>) p.get("google");
1097-
assertTrue(googleClaim.containsKey("license"));
1097+
ArrayMap<String, ArrayMap<String, ?>> googleClaim =
1098+
(ArrayMap<String, ArrayMap<String, ?>>) p.get("google");
1099+
assertTrue(googleClaim.containsKey("compute_engine"));
1100+
ArrayMap<String, ?> computeEngineClaim =
1101+
(ArrayMap<String, ?>) googleClaim.get("compute_engine");
1102+
assertTrue(computeEngineClaim.containsKey("license_id"));
10981103
}
10991104

11001105
@Test

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,16 @@
5050
import java.util.HashMap;
5151
import java.util.List;
5252
import java.util.Map;
53+
import java.util.regex.Pattern;
5354

5455
/** Transport that simulates the GCE metadata server for access tokens. */
5556
public class MockMetadataServerTransport extends MockHttpTransport {
5657

58+
private static final Pattern BOOL_PARAMETER_VALUE = Pattern.compile("on|1|(?i)y|yes|true");
59+
5760
// key are scopes as in request url string following "?scopes="
5861
private Map<String, String> scopesToAccessToken;
62+
5963
private Integer statusCode;
6064

6165
private String serviceAccountEmail;
@@ -271,14 +275,16 @@ public LowLevelHttpResponse execute() {
271275
if (queryPairs.containsKey("format")) {
272276
if (((String) queryPairs.get("format")).equals("full")) {
273277

274-
// return license only if format=full is set
275-
if (queryPairs.containsKey("license")) {
276-
if (((String) queryPairs.get("license")).equals("TRUE")) {
278+
// return licenses only if format=full is set
279+
if (queryPairs.containsKey("licenses")) {
280+
// The metadata server defaults to false and matches "on", "off" and ::absl::SimpleAtob.
281+
// See https://abseil.io/docs/cpp/guides/strings#numericConversion for more information.
282+
if (BOOL_PARAMETER_VALUE.matcher((String) queryPairs.get("licenses")).matches()) {
277283
return new MockLowLevelHttpRequest(url) {
278284
@Override
279285
public LowLevelHttpResponse execute() throws IOException {
280286
return new MockLowLevelHttpResponse()
281-
.setContent(ComputeEngineCredentialsTest.FULL_ID_TOKEN_WITH_LICENSE);
287+
.setContent(ComputeEngineCredentialsTest.FULL_ID_TOKEN_WITH_LICENSES);
282288
}
283289
};
284290
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ public void getAuthorizationUrl() throws IOException {
207207
assertEquals("code", parameters.get("response_type"));
208208
assertEquals(pkce.getCodeChallenge(), parameters.get("code_challenge"));
209209
assertEquals(pkce.getCodeChallengeMethod(), parameters.get("code_challenge_method"));
210+
assertEquals("consent", parameters.get("prompt"));
210211
}
211212

212213
@Test

samples/snippets/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<dependency>
4444
<groupId>com.google.auth</groupId>
4545
<artifactId>google-auth-library-oauth2-http</artifactId>
46-
<version>1.33.1</version>
46+
<version>1.35.0</version>
4747
</dependency>
4848

4949
<!-- IAM dependency-->

0 commit comments

Comments
 (0)