diff --git a/build.gradle b/build.gradle index 0fb5642..fe056b0 100644 --- a/build.gradle +++ b/build.gradle @@ -12,6 +12,7 @@ dependencies { compile fileTree(dir: './lib/', includes: ['*.jar']) + compile 'com.fasterxml.jackson.core:jackson-databind:2.9.5' compile 'org.glassfish.jersey.containers:jersey-container-servlet:2.+' compile group: 'commons-collections', name: 'commons-collections', version: '3.2' compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' diff --git a/src/main/java/cactusServer/entities/Account.java b/src/main/java/cactusServer/entities/Account.java index 2d5319c..de5d81c 100644 --- a/src/main/java/cactusServer/entities/Account.java +++ b/src/main/java/cactusServer/entities/Account.java @@ -1,19 +1,29 @@ package cactusServer.entities; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + import cactusServer.utils.RandomStringGenerator; import net.arnx.jsonic.JSONHint; public class Account { private String id, name, token; - @JSONHint(ignore = true) - private String pass, uniqueID; - @JSONHint(ignore = true) + + @JSONHint(ignore=true) + private String pass; + + @JSONHint(ignore=true) + private String uniqueID; + + @JSONHint(ignore=true) private boolean login = false; - public Account(String userID, String userName, String userPass) { + public Account(String userID, String userName, String userPass, String uniqueID) { setId(userID); setName(userName); setPass(userPass); + setUniqueID(uniqueID); + formToken(); } public String getId() { @@ -31,16 +41,16 @@ public void setName(String name) { this.name = name; } - - public String getPass() { + + public String getpass() { return pass; } public void setPass(String pass) { this.pass = pass; } - - public boolean isLogin() { + + public boolean islogin() { return login; } @@ -56,8 +66,8 @@ token = RandomStringGenerator.generateRandomString(64, RandomStringGenerator.ALPHA_NUMERIC); return token; } - - public String getUniqueID() { + + public String getuniqueID() { return uniqueID; } diff --git a/src/main/java/cactusServer/models/Accounts.java b/src/main/java/cactusServer/models/Accounts.java index 85fe414..7e2240f 100644 --- a/src/main/java/cactusServer/models/Accounts.java +++ b/src/main/java/cactusServer/models/Accounts.java @@ -1,7 +1,6 @@ package cactusServer.models; import javax.inject.Singleton; -import javax.servlet.http.HttpServletResponse; import cactusServer.entities.*; import cactusServer.utils.RandomStringGenerator; @@ -13,9 +12,9 @@ public class Accounts { private static Accounts theInstance = null; private ArrayList accounts = new ArrayList<>(10000); - private HashSet idSet = new HashSet<>(10000); + private HashSet userIDSet = new HashSet<>(10000); + private HashSet uniqueIDSet = new HashSet<>(10000); private Session session; - private HttpServletResponse response; private Accounts() { @@ -29,13 +28,14 @@ } public Session createAcount(String userID, String userName, String userPass) { - String uniqueID = RandomStringGenerator.generateUniqueString(12, RandomStringGenerator.ALPHA_NUMERIC, idSet); - idSet.add(uniqueID); - Account newAccount = new Account(userID, userName, userPass); - newAccount.setUniqueID(uniqueID); + if (!userIDSet.add(userID)) + return null; + String uniqueID = RandomStringGenerator.generateUniqueString(12, RandomStringGenerator.ALPHA_NUMERIC, + uniqueIDSet); + uniqueIDSet.add(uniqueID); + Account newAccount = new Account(userID, userName, userPass, uniqueID); accounts.add(newAccount); - newAccount.formToken(); - session = new Session(newAccount, URI.create(uniqueID)); + session = new Session(newAccount, URI.create("/CactusServer/rest/accounts/" + uniqueID)); return session; } @@ -72,24 +72,24 @@ } return null; } - + public Account getAccountByuniqueID(String uniqueID) { Account editAccount; for (int i = 0; i < accounts.size(); i++) { editAccount = accounts.get(i); - if (editAccount.getUniqueID().equals(uniqueID)) { + if (editAccount.getuniqueID().equals(uniqueID)) { return editAccount; } } return null; } - + public Session loginAccount(String userID, String userPass) { - if (getAccountByID(userID).getPass().equals(userPass)) { + if (getAccountByID(userID).getpass().equals(userPass)) { Accounts.getInstance().getAccountByID(userID).setLogin(true); Accounts.getInstance().getAccountByID(userID).formToken(); - session = new Session(Accounts.getInstance().getAccountByID(userID), - URI.create("/CactusServer/rest/accounts/" + Accounts.getInstance().getAccountByID(userID).getUniqueID())); + session = new Session(Accounts.getInstance().getAccountByID(userID), URI.create( + "/CactusServer/rest/accounts/" + Accounts.getInstance().getAccountByID(userID).getuniqueID())); return session; } else { return null; diff --git a/src/main/java/cactusServer/resources/AccountsRest.java b/src/main/java/cactusServer/resources/AccountsRest.java index c29d730..0048053 100644 --- a/src/main/java/cactusServer/resources/AccountsRest.java +++ b/src/main/java/cactusServer/resources/AccountsRest.java @@ -1,5 +1,6 @@ package cactusServer.resources; +import javax.servlet.http.HttpServletResponse; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; @@ -8,6 +9,8 @@ @Path("/accounts") public class AccountsRest { + private HttpServletResponse response; + @PUT @Produces(MediaType.APPLICATION_JSON) public Session loginAccount(@FormParam("userID") String userID, @FormParam("userPass") String userPass) {