From 3b82117c6a22c0e4907cdb7d7487ac6adbb572b0 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 21 Jul 2022 14:45:47 +0200 Subject: [PATCH] Check token expiration --- .../java/eu/faircode/email/ServiceSynchronize.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 2248b69b6a..8755811b4e 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -2241,6 +2241,17 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences throw new StoreClosedException(iservice.getStore(), "Unrecoverable", cause); } + // Check token expiration + if (!account.isTransient(this)) { + Long expirationTime = iservice.getAccessTokenExpirationTime(); + if (expirationTime != null && expirationTime < new Date().getTime()) { + EntityLog.log(this, EntityLog.Type.Debug, "Token" + + " expired=" + new Date(expirationTime) + + " user=" + account.provider + ":" + account.user); + throw new IllegalStateException(Log.TOKEN_REFRESH_REQUIRED); + } + } + // Sends store NOOP if (EmailService.SEPARATE_STORE_CONNECTION) { EntityLog.log(this, EntityLog.Type.Account, account,