Skip to content

Commit a3f5d67

Browse files
authored
Update App Check SDKs to use v1 API. (#3627)
* Update URL and response object to match v1 API. * Fix unit tests.
1 parent 7f0bff1 commit a3f5d67

File tree

13 files changed

+42
-44
lines changed

13 files changed

+42
-44
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=16.0.0-beta06
1+
version=16.0.0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=16.0.0-beta06
1+
version=16.0.0

appcheck/firebase-appcheck-debug/src/test/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProviderTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
public class DebugAppCheckProviderTest {
5151

5252
private static final String DEBUG_SECRET = "debugSecret";
53-
private static final String ATTESTATION_TOKEN = "token";
53+
private static final String APP_CHECK_TOKEN = "appCheckToken";
5454
private static final String TIME_TO_LIVE = "3600s";
5555
private static final String API_KEY = "apiKey";
5656
private static final String APP_ID = "appId";
@@ -128,7 +128,7 @@ public void exchangeDebugToken_onSuccess_setsTaskResult() throws Exception {
128128
when(mockNetworkClient.exchangeAttestationForAppCheckToken(
129129
any(), eq(NetworkClient.DEBUG), eq(mockRetryManager)))
130130
.thenReturn(mockAppCheckTokenResponse);
131-
when(mockAppCheckTokenResponse.getAttestationToken()).thenReturn(ATTESTATION_TOKEN);
131+
when(mockAppCheckTokenResponse.getToken()).thenReturn(APP_CHECK_TOKEN);
132132
when(mockAppCheckTokenResponse.getTimeToLive()).thenReturn(TIME_TO_LIVE);
133133

134134
DebugAppCheckProvider provider =
@@ -141,7 +141,7 @@ public void exchangeDebugToken_onSuccess_setsTaskResult() throws Exception {
141141

142142
AppCheckToken token = task.getResult();
143143
assertThat(token).isInstanceOf(DefaultAppCheckToken.class);
144-
assertThat(token.getToken()).isEqualTo(ATTESTATION_TOKEN);
144+
assertThat(token.getToken()).isEqualTo(APP_CHECK_TOKEN);
145145
}
146146

147147
@Test
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version=16.0.0-beta06
2-
latestReleasedVersion=16.0.0-beta05
1+
version=16.0.0
2+
latestReleasedVersion=16.0.0-beta06
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=16.0.0-beta06
1+
version=16.0.0

appcheck/firebase-appcheck-safetynet/src/test/java/com/google/firebase/appcheck/safetynet/internal/SafetyNetAppCheckProviderTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public class SafetyNetAppCheckProviderTest {
5656
private static final String APP_ID = "appId";
5757
private static final String PROJECT_ID = "projectId";
5858
private static final String SAFETY_NET_TOKEN = "safetyNetToken";
59-
private static final String ATTESTATION_TOKEN = "token";
59+
private static final String APP_CHECK_TOKEN = "appCheckToken";
6060
private static final String TIME_TO_LIVE = "3600s";
6161

6262
private FirebaseApp firebaseApp;
@@ -188,7 +188,7 @@ public void exchangeSafetyNetJwsForToken_onSuccess_setsTaskResult() throws Excep
188188
when(mockNetworkClient.exchangeAttestationForAppCheckToken(
189189
any(), eq(NetworkClient.SAFETY_NET), eq(mockRetryManager)))
190190
.thenReturn(mockAppCheckTokenResponse);
191-
when(mockAppCheckTokenResponse.getAttestationToken()).thenReturn(ATTESTATION_TOKEN);
191+
when(mockAppCheckTokenResponse.getToken()).thenReturn(APP_CHECK_TOKEN);
192192
when(mockAppCheckTokenResponse.getTimeToLive()).thenReturn(TIME_TO_LIVE);
193193

194194
SafetyNetAppCheckProvider provider =
@@ -207,7 +207,7 @@ public void exchangeSafetyNetJwsForToken_onSuccess_setsTaskResult() throws Excep
207207

208208
AppCheckToken token = task.getResult();
209209
assertThat(token).isInstanceOf(DefaultAppCheckToken.class);
210-
assertThat(token.getToken()).isEqualTo(ATTESTATION_TOKEN);
210+
assertThat(token.getToken()).isEqualTo(APP_CHECK_TOKEN);
211211
}
212212

213213
@Test
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=16.0.0-beta06
1+
version=16.0.0

appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/AppCheckTokenResponse.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,36 +23,35 @@
2323
import org.json.JSONObject;
2424

2525
/**
26-
* Client-side model of the AttestationTokenResponse payload from the Firebase App Check Token
27-
* Exchange API.
26+
* Client-side model of the AppCheckToken payload from the Firebase App Check Token Exchange API.
2827
*/
2928
public class AppCheckTokenResponse {
3029

31-
@VisibleForTesting static final String ATTESTATION_TOKEN_KEY = "attestationToken";
30+
@VisibleForTesting static final String TOKEN_KEY = "token";
3231
@VisibleForTesting static final String TIME_TO_LIVE_KEY = "ttl";
3332

34-
private String attestationToken;
33+
private String token;
3534
private String timeToLive;
3635

3736
@NonNull
3837
public static AppCheckTokenResponse fromJsonString(@NonNull String jsonString)
3938
throws JSONException {
4039
JSONObject jsonObject = new JSONObject(jsonString);
41-
String attestationToken = emptyToNull(jsonObject.optString(ATTESTATION_TOKEN_KEY));
40+
String token = emptyToNull(jsonObject.optString(TOKEN_KEY));
4241
String timeToLive = emptyToNull(jsonObject.optString(TIME_TO_LIVE_KEY));
43-
return new AppCheckTokenResponse(attestationToken, timeToLive);
42+
return new AppCheckTokenResponse(token, timeToLive);
4443
}
4544

46-
private AppCheckTokenResponse(@NonNull String attestationToken, @NonNull String timeToLive) {
47-
checkNotNull(attestationToken);
45+
private AppCheckTokenResponse(@NonNull String token, @NonNull String timeToLive) {
46+
checkNotNull(token);
4847
checkNotNull(timeToLive);
49-
this.attestationToken = attestationToken;
48+
this.token = token;
5049
this.timeToLive = timeToLive;
5150
}
5251

5352
@NonNull
54-
public String getAttestationToken() {
55-
return attestationToken;
53+
public String getToken() {
54+
return token;
5655
}
5756

5857
@NonNull

appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/DefaultAppCheckToken.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,13 @@ public static DefaultAppCheckToken constructFromAppCheckTokenResponse(
7777
} catch (NumberFormatException e) {
7878
// If parsing the duration string returned by the server fails for any reason, fall back to
7979
// computing the timeToLive from the token claims directly.
80-
Map<String, Object> claimsMap =
81-
TokenParser.parseTokenClaims(tokenResponse.getAttestationToken());
80+
Map<String, Object> claimsMap = TokenParser.parseTokenClaims(tokenResponse.getToken());
8281
long iat = getLongFromClaimsSafely(claimsMap, ISSUED_AT_KEY);
8382
long exp = getLongFromClaimsSafely(claimsMap, EXPIRATION_TIME_KEY);
8483
expiresInMillis = (exp - iat) * ONE_SECOND_MILLIS;
8584
}
8685

87-
return new DefaultAppCheckToken(tokenResponse.getAttestationToken(), expiresInMillis);
86+
return new DefaultAppCheckToken(tokenResponse.getToken(), expiresInMillis);
8887
}
8988

9089
@NonNull

appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ public class NetworkClient {
5252
private static final String TAG = NetworkClient.class.getName();
5353

5454
private static final String SAFETY_NET_EXCHANGE_URL_TEMPLATE =
55-
"https://firebaseappcheck.googleapis.com/v1beta/projects/%s/apps/%s:exchangeSafetyNetToken?key=%s";
55+
"https://firebaseappcheck.googleapis.com/v1/projects/%s/apps/%s:exchangeSafetyNetToken?key=%s";
5656
private static final String DEBUG_EXCHANGE_URL_TEMPLATE =
57-
"https://firebaseappcheck.googleapis.com/v1beta/projects/%s/apps/%s:exchangeDebugToken?key=%s";
57+
"https://firebaseappcheck.googleapis.com/v1/projects/%s/apps/%s:exchangeDebugToken?key=%s";
5858
private static final String CONTENT_TYPE = "Content-Type";
5959
private static final String APPLICATION_JSON = "application/json";
6060
private static final String UTF_8 = "UTF-8";

appcheck/firebase-appcheck/src/test/java/com/google/firebase/appcheck/internal/AppCheckTokenResponseTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,23 @@
2828
@Config(manifest = Config.NONE)
2929
public class AppCheckTokenResponseTest {
3030

31-
private static final String ATTESTATION_TOKEN = "attestationToken";
32-
private static final String TIME_TO_LIVE = "ttl";
31+
private static final String APP_CHECK_TOKEN = "appCheckToken";
32+
private static final String TIME_TO_LIVE = "3600s";
3333

3434
@Test
3535
public void fromJsonString_expectDeserialized() throws Exception {
3636
JSONObject jsonObject = new JSONObject();
37-
jsonObject.put(AppCheckTokenResponse.ATTESTATION_TOKEN_KEY, ATTESTATION_TOKEN);
37+
jsonObject.put(AppCheckTokenResponse.TOKEN_KEY, APP_CHECK_TOKEN);
3838
jsonObject.put(AppCheckTokenResponse.TIME_TO_LIVE_KEY, TIME_TO_LIVE);
3939

4040
AppCheckTokenResponse appCheckTokenResponse =
4141
AppCheckTokenResponse.fromJsonString(jsonObject.toString());
42-
assertThat(appCheckTokenResponse.getAttestationToken()).isEqualTo(ATTESTATION_TOKEN);
42+
assertThat(appCheckTokenResponse.getToken()).isEqualTo(APP_CHECK_TOKEN);
4343
assertThat(appCheckTokenResponse.getTimeToLive()).isEqualTo(TIME_TO_LIVE);
4444
}
4545

4646
@Test
47-
public void fromJsonString_nullAttestationToken_throwsException() throws Exception {
47+
public void fromJsonString_nullToken_throwsException() throws Exception {
4848
JSONObject jsonObject = new JSONObject();
4949
jsonObject.put(AppCheckTokenResponse.TIME_TO_LIVE_KEY, TIME_TO_LIVE);
5050

@@ -56,7 +56,7 @@ public void fromJsonString_nullAttestationToken_throwsException() throws Excepti
5656
@Test
5757
public void fromJsonString_nullTimeToLive_throwsException() throws Exception {
5858
JSONObject jsonObject = new JSONObject();
59-
jsonObject.put(AppCheckTokenResponse.ATTESTATION_TOKEN_KEY, ATTESTATION_TOKEN);
59+
jsonObject.put(AppCheckTokenResponse.TOKEN_KEY, APP_CHECK_TOKEN);
6060

6161
assertThrows(
6262
NullPointerException.class,

appcheck/firebase-appcheck/src/test/java/com/google/firebase/appcheck/internal/DefaultAppCheckTokenTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public void testConstructFromRawToken_normalToken_expectSuccess() throws Excepti
112112

113113
@Test
114114
public void testConstructFromAppCheckTokenResponse_success() {
115-
when(mockAppCheckTokenResponse.getAttestationToken()).thenReturn(TOKEN_PAYLOAD);
115+
when(mockAppCheckTokenResponse.getToken()).thenReturn(TOKEN_PAYLOAD);
116116
when(mockAppCheckTokenResponse.getTimeToLive()).thenReturn(TIME_TO_LIVE_ONE_HOUR);
117117

118118
DefaultAppCheckToken defaultAppCheckToken =
@@ -124,7 +124,7 @@ public void testConstructFromAppCheckTokenResponse_success() {
124124

125125
@Test
126126
public void testConstructFromAppCheckTokenResponse_withNanoSecondsDuration_success() {
127-
when(mockAppCheckTokenResponse.getAttestationToken()).thenReturn(TOKEN_PAYLOAD);
127+
when(mockAppCheckTokenResponse.getToken()).thenReturn(TOKEN_PAYLOAD);
128128
when(mockAppCheckTokenResponse.getTimeToLive()).thenReturn(TIME_TO_LIVE_ONE_HOUR_PLUS_NANOS);
129129

130130
DefaultAppCheckToken defaultAppCheckToken =
@@ -138,7 +138,7 @@ public void testConstructFromAppCheckTokenResponse_withNanoSecondsDuration_succe
138138
public void testConstructFromAppCheckTokenResponse_invalidTimeToLiveFormat_fallbackToTokenClaims()
139139
throws Exception {
140140
String rawToken = constructFakeRawToken();
141-
when(mockAppCheckTokenResponse.getAttestationToken()).thenReturn(rawToken);
141+
when(mockAppCheckTokenResponse.getToken()).thenReturn(rawToken);
142142
when(mockAppCheckTokenResponse.getTimeToLive()).thenReturn(INVALID_TIME_TO_LIVE);
143143

144144
DefaultAppCheckToken defaultAppCheckToken =

appcheck/firebase-appcheck/src/test/java/com/google/firebase/appcheck/internal/NetworkClientTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
package com.google.firebase.appcheck.internal;
1616

1717
import static com.google.common.truth.Truth.assertThat;
18-
import static com.google.firebase.appcheck.internal.AppCheckTokenResponse.ATTESTATION_TOKEN_KEY;
1918
import static com.google.firebase.appcheck.internal.AppCheckTokenResponse.TIME_TO_LIVE_KEY;
19+
import static com.google.firebase.appcheck.internal.AppCheckTokenResponse.TOKEN_KEY;
2020
import static com.google.firebase.appcheck.internal.HttpErrorResponse.CODE_KEY;
2121
import static com.google.firebase.appcheck.internal.HttpErrorResponse.ERROR_KEY;
2222
import static com.google.firebase.appcheck.internal.HttpErrorResponse.MESSAGE_KEY;
@@ -66,13 +66,13 @@ public class NetworkClientTest {
6666
.setProjectId(PROJECT_ID)
6767
.build();
6868
private static final String SAFETY_NET_EXPECTED_URL =
69-
"https://firebaseappcheck.googleapis.com/v1beta/projects/projectId/apps/appId:exchangeSafetyNetToken?key=apiKey";
69+
"https://firebaseappcheck.googleapis.com/v1/projects/projectId/apps/appId:exchangeSafetyNetToken?key=apiKey";
7070
private static final String DEBUG_EXPECTED_URL =
71-
"https://firebaseappcheck.googleapis.com/v1beta/projects/projectId/apps/appId:exchangeDebugToken?key=apiKey";
71+
"https://firebaseappcheck.googleapis.com/v1/projects/projectId/apps/appId:exchangeDebugToken?key=apiKey";
7272
private static final String JSON_REQUEST = "jsonRequest";
7373
private static final int SUCCESS_CODE = 200;
7474
private static final int ERROR_CODE = 404;
75-
private static final String ATTESTATION_TOKEN = "token";
75+
private static final String APP_CHECK_TOKEN = "token";
7676
private static final String TIME_TO_LIVE = "3600s";
7777
private static final String ERROR_MESSAGE = "error message";
7878
private static final String HEART_BEAT_HEADER_TEST = "test-header";
@@ -122,7 +122,7 @@ public void exchangeSafetyNetToken_successResponse_returnsAppCheckTokenResponse(
122122
AppCheckTokenResponse tokenResponse =
123123
networkClient.exchangeAttestationForAppCheckToken(
124124
JSON_REQUEST.getBytes(), NetworkClient.SAFETY_NET, mockRetryManager);
125-
assertThat(tokenResponse.getAttestationToken()).isEqualTo(ATTESTATION_TOKEN);
125+
assertThat(tokenResponse.getToken()).isEqualTo(APP_CHECK_TOKEN);
126126
assertThat(tokenResponse.getTimeToLive()).isEqualTo(TIME_TO_LIVE);
127127

128128
URL expectedUrl = new URL(SAFETY_NET_EXPECTED_URL);
@@ -172,7 +172,7 @@ public void exchangeDebugToken_successResponse_returnsAppCheckTokenResponse() th
172172
AppCheckTokenResponse tokenResponse =
173173
networkClient.exchangeAttestationForAppCheckToken(
174174
JSON_REQUEST.getBytes(), NetworkClient.DEBUG, mockRetryManager);
175-
assertThat(tokenResponse.getAttestationToken()).isEqualTo(ATTESTATION_TOKEN);
175+
assertThat(tokenResponse.getToken()).isEqualTo(APP_CHECK_TOKEN);
176176
assertThat(tokenResponse.getTimeToLive()).isEqualTo(TIME_TO_LIVE);
177177

178178
URL expectedUrl = new URL(DEBUG_EXPECTED_URL);
@@ -264,7 +264,7 @@ private void verifyRequestHeaders() {
264264

265265
private static JSONObject createAttestationResponse() throws Exception {
266266
JSONObject responseBodyJson = new JSONObject();
267-
responseBodyJson.put(ATTESTATION_TOKEN_KEY, ATTESTATION_TOKEN);
267+
responseBodyJson.put(TOKEN_KEY, APP_CHECK_TOKEN);
268268
responseBodyJson.put(TIME_TO_LIVE_KEY, TIME_TO_LIVE);
269269

270270
return responseBodyJson;

0 commit comments

Comments
 (0)