From eb5f62c19d5562861992f25e409a75da797d69e6 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Sat, 18 Mar 2023 14:38:17 +0100 Subject: [PATCH] Update not logged-in system --- .../jeffcheasey88/peeratcode/routes/PlayerDetails.java | 8 +++++--- .../peeratcode/routes/PuzzleResponse.java | 9 +++++---- src/be/jeffcheasey88/peeratcode/routes/Result.java | 10 ++++------ src/be/jeffcheasey88/peeratcode/webserver/Client.java | 1 - .../jeffcheasey88/peeratcode/webserver/Response.java | 2 ++ src/be/jeffcheasey88/peeratcode/webserver/Router.java | 1 + 6 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/be/jeffcheasey88/peeratcode/routes/PlayerDetails.java b/src/be/jeffcheasey88/peeratcode/routes/PlayerDetails.java index d7b2a6d..4f602aa 100644 --- a/src/be/jeffcheasey88/peeratcode/routes/PlayerDetails.java +++ b/src/be/jeffcheasey88/peeratcode/routes/PlayerDetails.java @@ -8,12 +8,9 @@ import be.jeffcheasey88.peeratcode.webserver.HttpWriter; import be.jeffcheasey88.peeratcode.webserver.Response; import be.jeffcheasey88.peeratcode.webserver.User; -import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import java.util.Arrays; import java.util.Base64; -import java.util.SortedSet; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -57,4 +54,9 @@ public class PlayerDetails implements Response { public Pattern getPattern() { return Pattern.compile("^\\/player\\/(.+)?$"); } + + @Override + public boolean needLogin(){ + return true; + } } diff --git a/src/be/jeffcheasey88/peeratcode/routes/PuzzleResponse.java b/src/be/jeffcheasey88/peeratcode/routes/PuzzleResponse.java index 4236280..16b5b74 100644 --- a/src/be/jeffcheasey88/peeratcode/routes/PuzzleResponse.java +++ b/src/be/jeffcheasey88/peeratcode/routes/PuzzleResponse.java @@ -29,10 +29,6 @@ public class PuzzleResponse implements Response { @Override public void exec(Matcher matcher, User user, HttpReader reader, HttpWriter writer) throws Exception { - if (user == null) { - HttpUtil.responseHeaders(writer, 403, "Access-Control-Allow-Origin: *"); - return; - } ReceivedResponse received = new ReceivedResponse(matcher, reader); saveSourceCode(received, databaseRepo.getPlayer(user.getId())); @@ -69,6 +65,11 @@ public class PuzzleResponse implements Response { public String getType() { return "POST"; } + + @Override + public boolean needLogin(){ + return true; + } } class ReceivedResponse { diff --git a/src/be/jeffcheasey88/peeratcode/routes/Result.java b/src/be/jeffcheasey88/peeratcode/routes/Result.java index 1a78ba3..ec57a1f 100644 --- a/src/be/jeffcheasey88/peeratcode/routes/Result.java +++ b/src/be/jeffcheasey88/peeratcode/routes/Result.java @@ -20,11 +20,6 @@ public class Result implements Response{ @Override public void exec(Matcher matcher, User user, HttpReader reader, HttpWriter writer) throws Exception { - if(user == null){ - HttpUtil.responseHeaders(writer, 403, "Access-Control-Allow-Origin: *"); - return; - } - int puzzle = Integer.parseInt(matcher.group(1)); int score = this.repo.getScore(user.getId(), puzzle); @@ -41,5 +36,8 @@ public class Result implements Response{ return Pattern.compile("^\\/result\\/(\\d+)$"); } - + @Override + public boolean needLogin(){ + return true; + } } diff --git a/src/be/jeffcheasey88/peeratcode/webserver/Client.java b/src/be/jeffcheasey88/peeratcode/webserver/Client.java index ec655ac..b71f124 100644 --- a/src/be/jeffcheasey88/peeratcode/webserver/Client.java +++ b/src/be/jeffcheasey88/peeratcode/webserver/Client.java @@ -54,7 +54,6 @@ public class Client extends Thread{ JwtClaims jwtClaims = jwtConsumer.processToClaims(auth); return new User(jwtClaims); }catch(Exception e){ - e.printStackTrace(); HttpUtil.responseHeaders(writer, 401, "Access-Control-Allow-Origin: *"); } return null; diff --git a/src/be/jeffcheasey88/peeratcode/webserver/Response.java b/src/be/jeffcheasey88/peeratcode/webserver/Response.java index 9b0d3ea..15bd790 100644 --- a/src/be/jeffcheasey88/peeratcode/webserver/Response.java +++ b/src/be/jeffcheasey88/peeratcode/webserver/Response.java @@ -10,4 +10,6 @@ public interface Response{ Pattern getPattern(); default String getType(){ return "GET"; } + + default boolean needLogin() { return false; } } \ No newline at end of file diff --git a/src/be/jeffcheasey88/peeratcode/webserver/Router.java b/src/be/jeffcheasey88/peeratcode/webserver/Router.java index 80f244f..58e8668 100644 --- a/src/be/jeffcheasey88/peeratcode/webserver/Router.java +++ b/src/be/jeffcheasey88/peeratcode/webserver/Router.java @@ -47,6 +47,7 @@ public class Router{ if(type.equals(response.getType())){ Matcher matcher = response.getPattern().matcher(path); if(matcher.matches()){ + if(user == null && response.needLogin()) return; response.exec(matcher, user, reader, writer); return; }