Log token expiration

This commit is contained in:
M66B 2020-10-27 09:01:33 +01:00
parent b0dd941d69
commit 21c8868189
2 changed files with 14 additions and 0 deletions

View File

@ -53,6 +53,13 @@ public class GmailState {
return token; return token;
} }
Long getAccessTokenExpirationTime() {
if (token == null || acquired == 0)
return null;
else
return acquired + TOKEN_LIFETIME;
}
void refresh(@NonNull Context context, @NonNull String user, boolean expire) throws AuthenticatorException, OperationCanceledException, IOException { void refresh(@NonNull Context context, @NonNull String user, boolean expire) throws AuthenticatorException, OperationCanceledException, IOException {
if (expire || acquired + TOKEN_LIFETIME < new Date().getTime()) if (expire || acquired + TOKEN_LIFETIME < new Date().getTime())
try { try {

View File

@ -33,6 +33,7 @@ import net.openid.appauth.NoClientAuthentication;
import org.json.JSONException; import org.json.JSONException;
import java.io.IOException; import java.io.IOException;
import java.util.Date;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;
@ -84,6 +85,9 @@ public class ServiceAuthenticator extends Authenticator {
if (auth == AUTH_TYPE_GMAIL) { if (auth == AUTH_TYPE_GMAIL) {
GmailState authState = GmailState.jsonDeserialize(password); GmailState authState = GmailState.jsonDeserialize(password);
authState.refresh(context, user, expire); authState.refresh(context, user, expire);
Long expiration = authState.getAccessTokenExpirationTime();
if (expiration != null)
EntityLog.log(context, user + " token expiration=" + new Date(expiration));
String newPassword = authState.jsonSerializeString(); String newPassword = authState.jsonSerializeString();
if (!Objects.equals(password, newPassword)) { if (!Objects.equals(password, newPassword)) {
@ -96,6 +100,9 @@ public class ServiceAuthenticator extends Authenticator {
} else if (auth == AUTH_TYPE_OAUTH) { } else if (auth == AUTH_TYPE_OAUTH) {
AuthState authState = AuthState.jsonDeserialize(password); AuthState authState = AuthState.jsonDeserialize(password);
OAuthRefresh(context, provider, authState); OAuthRefresh(context, provider, authState);
Long expiration = authState.getAccessTokenExpirationTime();
if (expiration != null)
EntityLog.log(context, user + " token expiration=" + new Date(expiration));
String newPassword = authState.jsonSerializeString(); String newPassword = authState.jsonSerializeString();
if (!Objects.equals(password, newPassword)) { if (!Objects.equals(password, newPassword)) {