runelite-client: check saved session validity

This commit is contained in:
Adam
2017-05-20 11:49:24 -04:00
parent f92da7b9b1
commit 39430395ef
2 changed files with 16 additions and 4 deletions

View File

@@ -120,7 +120,8 @@ public class AccountClient
} }
catch (IOException ex) catch (IOException ex)
{ {
return false; logger.debug("Unable to verify session", ex);
return true; // assume it is still valid if the server is unreachable
} }
} }
} }

View File

@@ -50,6 +50,7 @@ import net.runelite.client.menus.MenuManager;
import net.runelite.client.plugins.PluginManager; import net.runelite.client.plugins.PluginManager;
import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.ClientUI;
import net.runelite.client.ui.overlay.OverlayRenderer; import net.runelite.client.ui.overlay.OverlayRenderer;
import net.runelite.http.api.account.AccountClient;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -160,11 +161,13 @@ public class RuneLite
return; return;
} }
AccountSession session;
try (FileInputStream in = new FileInputStream(SESSION_FILE)) 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) catch (Exception ex)
{ {
@@ -172,7 +175,15 @@ public class RuneLite
return; 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() public void saveSession()