Update not logged-in system
This commit is contained in:
parent
f23e139b9f
commit
eb5f62c19d
6 changed files with 17 additions and 14 deletions
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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; }
|
||||||
}
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue