diff --git a/src/main/java/cactusServer/entities/Account.java b/src/main/java/cactusServer/entities/Account.java index 2d5319c..8f4c2f5 100644 --- a/src/main/java/cactusServer/entities/Account.java +++ b/src/main/java/cactusServer/entities/Account.java @@ -1,7 +1,7 @@ package cactusServer.entities; import cactusServer.utils.RandomStringGenerator; -import net.arnx.jsonic.JSONHint; +import net.arnx.jsonic.*; public class Account { private String id, name, token; @@ -10,10 +10,12 @@ @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() { diff --git a/src/main/java/cactusServer/models/Accounts.java b/src/main/java/cactusServer/models/Accounts.java index 85fe414..d969622 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,13 @@ } 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,7 +71,7 @@ } return null; } - + public Account getAccountByuniqueID(String uniqueID) { Account editAccount; for (int i = 0; i < accounts.size(); i++) { @@ -83,13 +82,13 @@ } return null; } - + public Session loginAccount(String userID, String 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) {