X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2FLoginResult.java;h=ddc148b909c7b3cabceebcb03d407ffe5b4c972b;hb=53c2b6a134b08402e1daf3e4c84b9b888de9cc9c;hp=dadd16bc9949af8f83a17f49a64b24bd8f472af6;hpb=c8ee85f131d704509d8166347e0c8474920510a9;p=nikiroo-utils.git diff --git a/src/be/nikiroo/utils/LoginResult.java b/src/be/nikiroo/utils/LoginResult.java deleted file mode 100644 index dadd16b..0000000 --- a/src/be/nikiroo/utils/LoginResult.java +++ /dev/null @@ -1,194 +0,0 @@ -package be.nikiroo.utils; - -import java.util.ArrayList; -import java.util.List; - -/** - * A simple login facility using cookies. - * - * @author niki - */ -public class LoginResult { - private boolean success; - private String cookie; - private boolean badLogin; - private boolean badCookie; - private String option; - - /** - * Generate a failed login. - * - * @param badLogin - * TRUE if the login failed because of a who/key/subkey error - * @param badCookie - * TRUE if the login failed because of a bad cookie - * - */ - public LoginResult(boolean badLogin, boolean badCookie) { - this.badLogin = badLogin; - this.badCookie = badCookie; - } - - /** - * Generate a successful login for the given user. - * - * @param who - * the user (can be NULL) - * @param key - * the password (can be NULL) - * @param subkey - * a sub-password (can be NULL) - * @param option - * an option assigned to this user (can be NULL) - */ - public LoginResult(String who, String key, String subkey, String option) { - String wookie = CookieUtils.generateCookie(who + key, 0); - - this.option = option; - this.cookie = wookie + "~" - + CookieUtils.generateCookie( - wookie + (subkey == null ? "" : subkey) + option, 0) - + "~" + option; - this.success = true; - } - - /** - * Generate a login via this token and checks its validity. - *

- * Will fail with a NULL token, but - * {@link LoginResult#isBadCookie()} will still be false. - * - * @param cookie - * the token to check (if NULL, will simply fail but - * {@link LoginResult#isBadCookie()} will still be false) - * @param who - * the user (can be NULL) - * @param key - * the password (can be NULL) - */ - public LoginResult(String cookie, String who, String key) { - this(cookie, who, key, null, true); - } - - /** - * Generate a login via this token and checks its validity. - *

- * Will fail with a NULL token, but - * {@link LoginResult#isBadCookie()} will still be false. - * - * @param cookie - * the token to check (if NULL, will simply fail but - * {@link LoginResult#isBadCookie()} will still be false) - * @param who - * the user (can be NULL) - * @param key - * the password (can be NULL) - * @param subkeys - * the list of candidate subkey (can be NULL) - * @param allowNoSubkey - * allow the login if no subkey was present in the token - */ - public LoginResult(String cookie, String who, String key, - List subkeys, boolean allowNoSubkey) { - if (cookie != null) { - String hashes[] = cookie.split("~"); - if (hashes.length >= 2) { - String wookie = hashes[0]; - String rehashed = hashes[1]; - String opts = hashes.length > 2 ? hashes[2] : ""; - - if (CookieUtils.validateCookie(who + key, wookie)) { - if (subkeys == null) { - subkeys = new ArrayList(); - } - - if (allowNoSubkey) { - subkeys = new ArrayList(subkeys); - subkeys.add(""); - } - - for (String subkey : subkeys) { - if (CookieUtils.validateCookie(wookie + subkey + opts, - rehashed)) { - wookie = CookieUtils.generateCookie(who + key, 0); - this.cookie = CookieUtils - .generateCookie(wookie + subkey + opts, 0); - this.option = opts; - this.success = true; - } - } - } - } - - this.badCookie = !success; - } - - // No token -> no bad token - } - - /** - * The login wa successful. - * - * @return TRUE if it is - */ - public boolean isSuccess() { - return success; - } - - /** - * The refreshed token if the login is successful (NULL if not). - * - * @return the token, or NULL - */ - public String getCookie() { - return cookie; - } - - /** - * An option that was used to generate this login (always NULL if the login - * was not successful). - *

- * It can come from a manually generated {@link LoginResult}, but also from - * a {@link LoginResult} generated with a token. - * - * @return the option - */ - public String getOption() { - return option; - } - - /** - * The login failed because of a who/key/subkey error. - * - * @return TRUE if it failed because of a who/key/subkey error - */ - public boolean isBadLogin() { - return badLogin; - } - - /** - * The login failed because the cookie was not accepted - * - * @return TRUE if it failed because the cookie was not accepted - */ - public boolean isBadCookie() { - return badCookie; - } - - @Override - public String toString() { - if (success) - return "Login succeeded"; - - if (badLogin && badCookie) - return "Login failed because of bad login and bad cookie"; - - if (badLogin) - return "Login failed because of bad login"; - - if (badCookie) - return "Login failed because of bad cookie"; - - return "Login failed without giving a reason"; - } -} \ No newline at end of file