From a036c8ab411cd1e57953e6032c081b021795159d Mon Sep 17 00:00:00 2001 From: Ankita Jhawar Date: Tue, 8 Oct 2019 11:13:17 -0700 Subject: [PATCH 1/2] Updating getAuthToken to return creation timestamp along with auth token and expiration timestamp. --- firebase-installations-interop/api.txt | 2 ++ .../firebase/installations/InstallationTokenResult.java | 9 +++++++++ .../FirebaseInstallationsInstrumentedTest.java | 2 ++ .../firebase/installations/FisAndroidTestConstants.java | 2 ++ .../firebase/installations/GetAuthTokenListener.java | 1 + 5 files changed, 16 insertions(+) diff --git a/firebase-installations-interop/api.txt b/firebase-installations-interop/api.txt index b2a54de1051..308fe850bf3 100644 --- a/firebase-installations-interop/api.txt +++ b/firebase-installations-interop/api.txt @@ -5,6 +5,7 @@ package com.google.firebase.installations { ctor public InstallationTokenResult(); method @NonNull public static com.google.firebase.installations.InstallationTokenResult.Builder builder(); method @NonNull public abstract String getToken(); + method @NonNull public abstract long getTokenCreationTimestampInSecs(); method @NonNull public abstract long getTokenExpirationInSecs(); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder toBuilder(); } @@ -13,6 +14,7 @@ package com.google.firebase.installations { ctor public InstallationTokenResult.Builder(); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult build(); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setToken(@NonNull String); + method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenCreationTimestampInSecs(long); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenExpirationInSecs(long); } diff --git a/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java b/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java index 94266bcc9f2..b2df8e9544f 100644 --- a/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java +++ b/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java @@ -30,6 +30,12 @@ public abstract class InstallationTokenResult { @NonNull public abstract long getTokenExpirationInSecs(); + /** + * The amount of time, in seconds, when the auth-token was created for this Firebase Installation. + */ + @NonNull + public abstract long getTokenCreationTimestampInSecs(); + @NonNull public abstract Builder toBuilder(); @@ -47,6 +53,9 @@ public abstract static class Builder { @NonNull public abstract Builder setTokenExpirationInSecs(long value); + @NonNull + public abstract Builder setTokenCreationTimestampInSecs(long value); + @NonNull public abstract InstallationTokenResult build(); } diff --git a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java index ca6e34b761d..9da0100d2a1 100644 --- a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java +++ b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java @@ -528,6 +528,7 @@ public void testGetAuthToken_multipleCallsForceRefresh_fetchedNewTokenTwice() th InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN_3) .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestampInSecs(TEST_CREATION_TIMESTAMP_1) .build())) .doAnswer( AdditionalAnswers.answersWithDelay( @@ -536,6 +537,7 @@ public void testGetAuthToken_multipleCallsForceRefresh_fetchedNewTokenTwice() th InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN_4) .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestampInSecs(TEST_CREATION_TIMESTAMP_1) .build())) .when(backendClientReturnsOk) .generateAuthToken(anyString(), anyString(), anyString(), anyString()); diff --git a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java index 5645e3a5c56..c4e9c439789 100644 --- a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java +++ b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java @@ -50,6 +50,7 @@ public final class FisAndroidTestConstants { InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN) .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestampInSecs(TEST_CREATION_TIMESTAMP_1) .build()) .build(); @@ -57,5 +58,6 @@ public final class FisAndroidTestConstants { InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN_2) .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestampInSecs(TEST_CREATION_TIMESTAMP_1) .build(); } diff --git a/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java b/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java index 57760e9adb3..2c0de042d79 100644 --- a/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java +++ b/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java @@ -35,6 +35,7 @@ public boolean onStateReached(PersistedFidEntry persistedFidEntry) { InstallationTokenResult.builder() .setToken(persistedFidEntry.getAuthToken()) .setTokenExpirationInSecs(persistedFidEntry.getExpiresInSecs()) + .setTokenCreationTimestampInSecs(persistedFidEntry.getTokenCreationEpochInSecs()) .build()); return true; } From 179e773d2b4a5a9880891b84afd796e2a23abaa7 Mon Sep 17 00:00:00 2001 From: Ankita Jhawar Date: Wed, 9 Oct 2019 10:08:21 -0700 Subject: [PATCH 2/2] Addressing Rayo's comments. --- firebase-installations-interop/api.txt | 8 ++++---- .../firebase/installations/InstallationTokenResult.java | 8 ++++---- .../FirebaseInstallationsInstrumentedTest.java | 8 ++++---- .../firebase/installations/FisAndroidTestConstants.java | 8 ++++---- .../firebase/installations/FirebaseInstallations.java | 4 ++-- .../firebase/installations/GetAuthTokenListener.java | 4 ++-- .../remote/FirebaseInstallationServiceClient.java | 4 ++-- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/firebase-installations-interop/api.txt b/firebase-installations-interop/api.txt index 308fe850bf3..99b8e8affa4 100644 --- a/firebase-installations-interop/api.txt +++ b/firebase-installations-interop/api.txt @@ -5,8 +5,8 @@ package com.google.firebase.installations { ctor public InstallationTokenResult(); method @NonNull public static com.google.firebase.installations.InstallationTokenResult.Builder builder(); method @NonNull public abstract String getToken(); - method @NonNull public abstract long getTokenCreationTimestampInSecs(); - method @NonNull public abstract long getTokenExpirationInSecs(); + method @NonNull public abstract long getTokenCreationTimestamp(); + method @NonNull public abstract long getTokenExpirationTimestamp(); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder toBuilder(); } @@ -14,8 +14,8 @@ package com.google.firebase.installations { ctor public InstallationTokenResult.Builder(); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult build(); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setToken(@NonNull String); - method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenCreationTimestampInSecs(long); - method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenExpirationInSecs(long); + method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenCreationTimestamp(long); + method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenExpirationTimestamp(long); } } diff --git a/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java b/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java index b2df8e9544f..3dbc02c3e3e 100644 --- a/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java +++ b/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java @@ -28,13 +28,13 @@ public abstract class InstallationTokenResult { * The amount of time, in seconds, before the auth-token expires for this Firebase Installation. */ @NonNull - public abstract long getTokenExpirationInSecs(); + public abstract long getTokenExpirationTimestamp(); /** * The amount of time, in seconds, when the auth-token was created for this Firebase Installation. */ @NonNull - public abstract long getTokenCreationTimestampInSecs(); + public abstract long getTokenCreationTimestamp(); @NonNull public abstract Builder toBuilder(); @@ -51,10 +51,10 @@ public abstract static class Builder { public abstract Builder setToken(@NonNull String value); @NonNull - public abstract Builder setTokenExpirationInSecs(long value); + public abstract Builder setTokenExpirationTimestamp(long value); @NonNull - public abstract Builder setTokenCreationTimestampInSecs(long value); + public abstract Builder setTokenCreationTimestamp(long value); @NonNull public abstract InstallationTokenResult build(); diff --git a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java index 9da0100d2a1..a886f3c24bb 100644 --- a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java +++ b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java @@ -527,8 +527,8 @@ public void testGetAuthToken_multipleCallsForceRefresh_fetchedNewTokenTwice() th (unused) -> InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN_3) - .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) - .setTokenCreationTimestampInSecs(TEST_CREATION_TIMESTAMP_1) + .setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1) .build())) .doAnswer( AdditionalAnswers.answersWithDelay( @@ -536,8 +536,8 @@ public void testGetAuthToken_multipleCallsForceRefresh_fetchedNewTokenTwice() th (unused) -> InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN_4) - .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) - .setTokenCreationTimestampInSecs(TEST_CREATION_TIMESTAMP_1) + .setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1) .build())) .when(backendClientReturnsOk) .generateAuthToken(anyString(), anyString(), anyString(), anyString()); diff --git a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java index c4e9c439789..1728cb56554 100644 --- a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java +++ b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java @@ -49,15 +49,15 @@ public final class FisAndroidTestConstants { .setAuthToken( InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN) - .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) - .setTokenCreationTimestampInSecs(TEST_CREATION_TIMESTAMP_1) + .setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1) .build()) .build(); public static final InstallationTokenResult TEST_INSTALLATION_TOKEN_RESULT = InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN_2) - .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) - .setTokenCreationTimestampInSecs(TEST_CREATION_TIMESTAMP_1) + .setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1) .build(); } diff --git a/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java b/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java index 76961076092..ce1f7de3ac3 100644 --- a/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java +++ b/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java @@ -285,7 +285,7 @@ private Void registerAndSaveFid(PersistedFidEntry persistedFidEntry) .setRegistrationStatus(RegistrationStatus.REGISTERED) .setAuthToken(installationResponse.getAuthToken().getToken()) .setRefreshToken(installationResponse.getRefreshToken()) - .setExpiresInSecs(installationResponse.getAuthToken().getTokenExpirationInSecs()) + .setExpiresInSecs(installationResponse.getAuthToken().getTokenExpirationTimestamp()) .setTokenCreationEpochInSecs(creationTime) .build()); @@ -314,7 +314,7 @@ private InstallationTokenResult fetchAuthTokenFromServer(PersistedFidEntry persi .setRegistrationStatus(RegistrationStatus.REGISTERED) .setAuthToken(tokenResult.getToken()) .setRefreshToken(persistedFidEntry.getRefreshToken()) - .setExpiresInSecs(tokenResult.getTokenExpirationInSecs()) + .setExpiresInSecs(tokenResult.getTokenExpirationTimestamp()) .setTokenCreationEpochInSecs(creationTime) .build()); diff --git a/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java b/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java index 1e92824c983..583710ccddb 100644 --- a/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java +++ b/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java @@ -37,8 +37,8 @@ public boolean onStateReached( resultTaskCompletionSource.setResult( InstallationTokenResult.builder() .setToken(persistedFidEntry.getAuthToken()) - .setTokenExpirationInSecs(persistedFidEntry.getExpiresInSecs()) - .setTokenCreationTimestampInSecs(persistedFidEntry.getTokenCreationEpochInSecs()) + .setTokenExpirationTimestamp(persistedFidEntry.getExpiresInSecs()) + .setTokenCreationTimestamp(persistedFidEntry.getTokenCreationEpochInSecs()) .build()); return true; } diff --git a/firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java b/firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java index 51cc1869fae..4c0542101e1 100644 --- a/firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java +++ b/firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java @@ -272,7 +272,7 @@ private InstallationResponse readCreateResponse(HttpsURLConnection conn) throws if (key.equals("token")) { installationTokenResult.setToken(reader.nextString()); } else if (key.equals("expiresIn")) { - installationTokenResult.setTokenExpirationInSecs( + installationTokenResult.setTokenExpirationTimestamp( TimeUnit.MILLISECONDS.toSeconds(reader.nextLong())); } else { reader.skipValue(); @@ -301,7 +301,7 @@ private InstallationTokenResult readGenerateAuthTokenResponse(HttpsURLConnection if (name.equals("token")) { builder.setToken(reader.nextString()); } else if (name.equals("expiresIn")) { - builder.setTokenExpirationInSecs(TimeUnit.MILLISECONDS.toSeconds(reader.nextLong())); + builder.setTokenExpirationTimestamp(TimeUnit.MILLISECONDS.toSeconds(reader.nextLong())); } else { reader.skipValue(); }