Add backend authentication to App. Change all references of sigonasr2 to
the username of the App.
This commit is contained in:
parent
743aa7457d
commit
d1b225d382
@ -134,20 +134,20 @@ public class DrawCanvas extends JPanel implements KeyListener,ComponentListener,
|
|||||||
romanizedname = currentSong.romanized_name;
|
romanizedname = currentSong.romanized_name;
|
||||||
englishname = currentSong.english_name;
|
englishname = currentSong.english_name;
|
||||||
artist = currentSong.artist;
|
artist = currentSong.artist;
|
||||||
JSONObject obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/bestplay/sigonasr2/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
JSONObject obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/bestplay/"+MyRobot.USERNAME+"/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
||||||
if (obj.has("cool")) {
|
if (obj.has("cool")) {
|
||||||
bestPlay = new Result(MyRobot.p.songname,difficulty,obj.getInt("cool"),obj.getInt("fine"),obj.getInt("safe"),obj.getInt("sad"),obj.getInt("worst"),(float)obj.getDouble("percent"));
|
bestPlay = new Result(MyRobot.p.songname,difficulty,obj.getInt("cool"),obj.getInt("fine"),obj.getInt("safe"),obj.getInt("sad"),obj.getInt("worst"),(float)obj.getDouble("percent"));
|
||||||
lastScore = obj.getDouble("score");
|
lastScore = obj.getDouble("score");
|
||||||
} else {
|
} else {
|
||||||
bestPlay = null;
|
bestPlay = null;
|
||||||
}
|
}
|
||||||
obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/playcount/sigonasr2/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/playcount/"+MyRobot.USERNAME+"/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
||||||
plays = obj.getInt("playcount");
|
plays = obj.getInt("playcount");
|
||||||
obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/songpasscount/sigonasr2/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/songpasscount/"+MyRobot.USERNAME+"/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
||||||
passes = obj.getInt("passcount");
|
passes = obj.getInt("passcount");
|
||||||
obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/songfccount/sigonasr2/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/songfccount/"+MyRobot.USERNAME+"/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
||||||
fcCount = obj.getInt("fccount");
|
fcCount = obj.getInt("fccount");
|
||||||
/*obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/rating/sigonasr2");
|
/*obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/rating/"+MyRobot.USERNAME);
|
||||||
lastRating = overallrating;
|
lastRating = overallrating;
|
||||||
overallrating = (int)obj.getDouble("rating");
|
overallrating = (int)obj.getDouble("rating");
|
||||||
if (lastRating<overallrating) {ratingTime=System.currentTimeMillis();}
|
if (lastRating<overallrating) {ratingTime=System.currentTimeMillis();}
|
||||||
|
@ -159,6 +159,8 @@ public class MyRobot{
|
|||||||
public static DisplayManager DM;
|
public static DisplayManager DM;
|
||||||
public static AdditionalOptions AO;
|
public static AdditionalOptions AO;
|
||||||
public static boolean FUTURETONE = false;
|
public static boolean FUTURETONE = false;
|
||||||
|
public static String USERNAME = "";
|
||||||
|
public static String AUTHTOKEN = "";
|
||||||
|
|
||||||
public static ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
|
public static ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
|
||||||
|
|
||||||
@ -171,6 +173,8 @@ public class MyRobot{
|
|||||||
if (args[0].equalsIgnoreCase("debug")) {
|
if (args[0].equalsIgnoreCase("debug")) {
|
||||||
DEBUG_MODE=true;
|
DEBUG_MODE=true;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
AuthenticateUser();
|
||||||
}
|
}
|
||||||
JSONObject obj = FileUtils.readJsonFromUrl("http://www.projectdivar.com/songs");
|
JSONObject obj = FileUtils.readJsonFromUrl("http://www.projectdivar.com/songs");
|
||||||
SONGNAMES = new SongInfo[JSONObject.getNames(obj).length];
|
SONGNAMES = new SongInfo[JSONObject.getNames(obj).length];
|
||||||
@ -181,6 +185,79 @@ public class MyRobot{
|
|||||||
new MyRobot().go();
|
new MyRobot().go();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void AuthenticateUser() throws IOException {
|
||||||
|
File authentication_token = new File("authToken.txt");
|
||||||
|
if (!authentication_token.exists()) {
|
||||||
|
String enteredValue = "";
|
||||||
|
String username = "";
|
||||||
|
boolean success = false;
|
||||||
|
do {
|
||||||
|
username = "";
|
||||||
|
enteredValue = JOptionPane.showInputDialog("First time boot!\n\nPlease login on http://www.projectdivar.com and paste your App Authentication Token here.\nThe App Authentication token is used to record your scores and verify who you are! Do <b>not</b> share it with others!!!", "XXXXX-XXXXX-XXXXX");
|
||||||
|
if (enteredValue==null) {
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
if (!enteredValue.isEmpty()) {
|
||||||
|
do {
|
||||||
|
username = JOptionPane.showInputDialog("Please enter your <b>Project DivaR</b> username:","");
|
||||||
|
} while (username.isEmpty());
|
||||||
|
if (username==null) {
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
success = SendAuthenticationRequest(enteredValue, username);
|
||||||
|
}
|
||||||
|
} while (!success);
|
||||||
|
} else {
|
||||||
|
String[] data = FileUtils.readFromFile("authToken.txt");
|
||||||
|
String username = data[0];
|
||||||
|
String authenticationToken = data[1];
|
||||||
|
boolean success = SendAuthenticationRequest(data[1], data[0]);
|
||||||
|
if (!success) {
|
||||||
|
authentication_token.delete();
|
||||||
|
AuthenticateUser();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean SendAuthenticationRequest(String authenticationToken, String username) {
|
||||||
|
HttpClient httpclient = HttpClients.createDefault();
|
||||||
|
HttpPost httppost = new HttpPost("http://projectdivar.com/authenticateuser");
|
||||||
|
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||||
|
params.add(new BasicNameValuePair("username", username));
|
||||||
|
params.add(new BasicNameValuePair("authenticationToken", authenticationToken));
|
||||||
|
try {
|
||||||
|
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
HttpResponse response = null;
|
||||||
|
try {
|
||||||
|
response = httpclient.execute(httppost);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
HttpEntity entity = response.getEntity();
|
||||||
|
if (entity != null) {
|
||||||
|
try (InputStream instream = entity.getContent()) {
|
||||||
|
Scanner s = new Scanner(instream).useDelimiter("\\A");
|
||||||
|
String result = s.hasNext() ? s.next() : "";
|
||||||
|
System.out.println(result);
|
||||||
|
if (result.equalsIgnoreCase("\"authentication success!\"")) {
|
||||||
|
FileUtils.writetoFile(new String[] {username,authenticationToken,"The App Authentication token is used to record your scores and verify who you are! Do <b>not</b> share it with others!!!"}, "authToken.txt", false);
|
||||||
|
USERNAME=username;
|
||||||
|
AUTHTOKEN=authenticationToken;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(null,"Authentication Failed!\n\nPlease check your credentials and try again!");
|
||||||
|
}
|
||||||
|
instream.close();
|
||||||
|
} catch (UnsupportedOperationException | IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
boolean textFailPixel(BufferedImage img) {
|
boolean textFailPixel(BufferedImage img) {
|
||||||
Color failPixel = new Color(img.getRGB(0, 0));
|
Color failPixel = new Color(img.getRGB(0, 0));
|
||||||
//System.out.println(failPixel);
|
//System.out.println(failPixel);
|
||||||
@ -190,7 +267,7 @@ public class MyRobot{
|
|||||||
|
|
||||||
void BotMain() {
|
void BotMain() {
|
||||||
try {
|
try {
|
||||||
JSONObject obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/rating/sigonasr2");
|
JSONObject obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/rating/"+USERNAME);
|
||||||
p.lastRating = p.overallrating;
|
p.lastRating = p.overallrating;
|
||||||
p.overallrating = (int)obj.getDouble("rating");
|
p.overallrating = (int)obj.getDouble("rating");
|
||||||
if (p.lastRating<p.overallrating) {p.ratingTime=System.currentTimeMillis();}
|
if (p.lastRating<p.overallrating) {p.ratingTime=System.currentTimeMillis();}
|
||||||
@ -320,8 +397,8 @@ public class MyRobot{
|
|||||||
// Request parameters and other properties.
|
// Request parameters and other properties.
|
||||||
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
List<NameValuePair> params = new ArrayList<NameValuePair>();
|
||||||
params.add(new BasicNameValuePair("song", r.songName));
|
params.add(new BasicNameValuePair("song", r.songName));
|
||||||
params.add(new BasicNameValuePair("username", "sigonasr2"));
|
params.add(new BasicNameValuePair("username", USERNAME));
|
||||||
params.add(new BasicNameValuePair("authentication_token", "sig"));
|
params.add(new BasicNameValuePair("authentication_token", AUTHTOKEN));
|
||||||
params.add(new BasicNameValuePair("difficulty", r.difficulty));
|
params.add(new BasicNameValuePair("difficulty", r.difficulty));
|
||||||
params.add(new BasicNameValuePair("cool", Integer.toString(r.cool)));
|
params.add(new BasicNameValuePair("cool", Integer.toString(r.cool)));
|
||||||
params.add(new BasicNameValuePair("fine", Integer.toString(r.fine)));
|
params.add(new BasicNameValuePair("fine", Integer.toString(r.fine)));
|
||||||
@ -362,8 +439,8 @@ public class MyRobot{
|
|||||||
results.clear();
|
results.clear();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
JSONObject obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/rating/sigonasr2");
|
JSONObject obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/rating/"+USERNAME);
|
||||||
JSONObject obj2 = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/bestplay/sigonasr2/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
JSONObject obj2 = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/bestplay/"+USERNAME+"/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty);
|
||||||
p.lastRating = p.overallrating;
|
p.lastRating = p.overallrating;
|
||||||
if (obj2.has("score")) {
|
if (obj2.has("score")) {
|
||||||
double newScore = obj2.getDouble("score");
|
double newScore = obj2.getDouble("score");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user