package codeine.jsons.auth; import java.util.UUID; import codeine.model.Constants; import codeine.utils.StringUtils; public class CodeineUser { private String username; private String sisma; private String api_token;// Encrypted private transient String plain_api_token; private CodeineUser(String username, String sisma) { this.username = username; this.sisma = sisma; this.api_token = EncryptionUtils.encryptToken(UUID.randomUUID().toString(), Constants.CODEINE_API_TOKEN_DERIVER); } public static CodeineUser createNewUser(String username, String sisma) { return new CodeineUser(username, sisma); } public static CodeineUser createGuestUser() { return new CodeineUser(Constants.GUEST_USER, Constants.GUEST_USER); } public static CodeineUser createGuest(String name) { return new CodeineUser(name, name); } public String username() { return username; } public String credentials() { return sisma; } public String encodedApiTokenWithTime() { return EncryptionUtils.encryptToken(api_token() + "#" + System.currentTimeMillis(), Constants.CODEINE_API_TOKEN_DERIVER); } public String api_token() { if (StringUtils.isEmpty(plain_api_token)) { plain_api_token = EncryptionUtils.decrypt(Constants.CODEINE_API_TOKEN_DERIVER, api_token); } return plain_api_token; } @Override public String toString() { return "CodeineUser [username=" + username + "]"; } }