From 39430395eff5e3c0101bdc0e30e382f9a4258bab Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 20 May 2017 11:49:24 -0400 Subject: [PATCH] runelite-client: check saved session validity --- .../http/api/account/AccountClient.java | 3 ++- .../main/java/net/runelite/client/RuneLite.java | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/http-api/src/main/java/net/runelite/http/api/account/AccountClient.java b/http-api/src/main/java/net/runelite/http/api/account/AccountClient.java index 46c8a5f280..f620c13395 100644 --- a/http-api/src/main/java/net/runelite/http/api/account/AccountClient.java +++ b/http-api/src/main/java/net/runelite/http/api/account/AccountClient.java @@ -120,7 +120,8 @@ public class AccountClient } catch (IOException ex) { - return false; + logger.debug("Unable to verify session", ex); + return true; // assume it is still valid if the server is unreachable } } } diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index dd1cae7ee3..b1619a92ee 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -50,6 +50,7 @@ import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.PluginManager; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.overlay.OverlayRenderer; +import net.runelite.http.api.account.AccountClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -160,11 +161,13 @@ public class RuneLite return; } + AccountSession session; + try (FileInputStream in = new FileInputStream(SESSION_FILE)) { - accountSession = new Gson().fromJson(new InputStreamReader(in), AccountSession.class); + session = new Gson().fromJson(new InputStreamReader(in), AccountSession.class); - logger.debug("Loaded session for {}", accountSession.getUsername()); + logger.debug("Loaded session for {}", session.getUsername()); } catch (Exception ex) { @@ -172,7 +175,15 @@ public class RuneLite return; } - openSession(accountSession); + // Check if session is still valid + AccountClient accountClient = new AccountClient(session.getUuid()); + if (!accountClient.sesssionCheck()) + { + logger.debug("Loaded session {} is invalid", session.getUuid()); + return; + } + + openSession(session); } public void saveSession()