Update not logged-in system

This commit is contained in:
jeffcheasey88 2023-03-18 14:38:17 +01:00
parent f23e139b9f
commit eb5f62c19d
6 changed files with 17 additions and 14 deletions

View file

@ -8,12 +8,9 @@ import be.jeffcheasey88.peeratcode.webserver.HttpWriter;
import be.jeffcheasey88.peeratcode.webserver.Response; import be.jeffcheasey88.peeratcode.webserver.Response;
import be.jeffcheasey88.peeratcode.webserver.User; import be.jeffcheasey88.peeratcode.webserver.User;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import java.util.Arrays;
import java.util.Base64; import java.util.Base64;
import java.util.SortedSet;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -57,4 +54,9 @@ public class PlayerDetails implements Response {
public Pattern getPattern() { public Pattern getPattern() {
return Pattern.compile("^\\/player\\/(.+)?$"); return Pattern.compile("^\\/player\\/(.+)?$");
} }
@Override
public boolean needLogin(){
return true;
}
} }

View file

@ -29,10 +29,6 @@ public class PuzzleResponse implements Response {
@Override @Override
public void exec(Matcher matcher, User user, HttpReader reader, HttpWriter writer) throws Exception { 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); ReceivedResponse received = new ReceivedResponse(matcher, reader);
saveSourceCode(received, databaseRepo.getPlayer(user.getId())); saveSourceCode(received, databaseRepo.getPlayer(user.getId()));
@ -69,6 +65,11 @@ public class PuzzleResponse implements Response {
public String getType() { public String getType() {
return "POST"; return "POST";
} }
@Override
public boolean needLogin(){
return true;
}
} }
class ReceivedResponse { class ReceivedResponse {

View file

@ -20,11 +20,6 @@ public class Result implements Response{
@Override @Override
public void exec(Matcher matcher, User user, HttpReader reader, HttpWriter writer) throws Exception { 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 puzzle = Integer.parseInt(matcher.group(1));
int score = this.repo.getScore(user.getId(), puzzle); int score = this.repo.getScore(user.getId(), puzzle);
@ -41,5 +36,8 @@ public class Result implements Response{
return Pattern.compile("^\\/result\\/(\\d+)$"); return Pattern.compile("^\\/result\\/(\\d+)$");
} }
@Override
public boolean needLogin(){
return true;
}
} }

View file

@ -54,7 +54,6 @@ public class Client extends Thread{
JwtClaims jwtClaims = jwtConsumer.processToClaims(auth); JwtClaims jwtClaims = jwtConsumer.processToClaims(auth);
return new User(jwtClaims); return new User(jwtClaims);
}catch(Exception e){ }catch(Exception e){
e.printStackTrace();
HttpUtil.responseHeaders(writer, 401, "Access-Control-Allow-Origin: *"); HttpUtil.responseHeaders(writer, 401, "Access-Control-Allow-Origin: *");
} }
return null; return null;

View file

@ -10,4 +10,6 @@ public interface Response{
Pattern getPattern(); Pattern getPattern();
default String getType(){ return "GET"; } default String getType(){ return "GET"; }
default boolean needLogin() { return false; }
} }

View file

@ -47,6 +47,7 @@ public class Router{
if(type.equals(response.getType())){ if(type.equals(response.getType())){
Matcher matcher = response.getPattern().matcher(path); Matcher matcher = response.getPattern().matcher(path);
if(matcher.matches()){ if(matcher.matches()){
if(user == null && response.needLogin()) return;
response.exec(matcher, user, reader, writer); response.exec(matcher, user, reader, writer);
return; return;
} }