From f92da7b9b1796d06f5a7da6eab8f10738dbe458f Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 20 May 2017 11:37:49 -0400 Subject: [PATCH] http-service: add session check call to check session validity --- .../http/api/account/AccountClient.java | 24 +++++++++++++++++++ .../net/runelite/http/service/Service.java | 3 +++ .../http/service/account/AccountService.java | 6 +++++ 3 files changed, 33 insertions(+) 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 f4fd0b2eac..46c8a5f280 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 @@ -99,4 +99,28 @@ public class AccountClient logger.debug("Sent logout request"); } } + + public boolean sesssionCheck() + { + HttpUrl url = RuneliteAPI.getApiBase().newBuilder() + .addPathSegment("account") + .addPathSegment("session-check") + .build(); + + logger.debug("Built URI: {}", url); + + Request request = new Request.Builder() + .header(RuneliteAPI.RUNELITE_AUTH, uuid.toString()) + .url(url) + .build(); + + try (Response response = RuneliteAPI.CLIENT.newCall(request).execute()) + { + return response.isSuccessful(); + } + catch (IOException ex) + { + return false; + } + } } diff --git a/http-service/src/main/java/net/runelite/http/service/Service.java b/http-service/src/main/java/net/runelite/http/service/Service.java index 5349f947a0..0190fc747f 100644 --- a/http-service/src/main/java/net/runelite/http/service/Service.java +++ b/http-service/src/main/java/net/runelite/http/service/Service.java @@ -92,6 +92,9 @@ public class Service implements SparkApplication before("/logout", authFilter); get("/logout", accounts::logout); + + before("/session-check", authFilter); + get("/session-check", accounts::sessionCheck); }); before("/config", authFilter); path("/config", () -> diff --git a/http-service/src/main/java/net/runelite/http/service/account/AccountService.java b/http-service/src/main/java/net/runelite/http/service/account/AccountService.java index 33a30471e3..16d06bc9a9 100644 --- a/http-service/src/main/java/net/runelite/http/service/account/AccountService.java +++ b/http-service/src/main/java/net/runelite/http/service/account/AccountService.java @@ -249,4 +249,10 @@ public class AccountService return ""; } + + public Object sessionCheck(Request request, Response response) + { + // Auth filter would kick this out before here + return ""; + } }