From: Niki Roo Date: Wed, 13 May 2020 18:51:07 +0000 (+0200) Subject: LoginResult: fix cookie login X-Git-Url: https://git.nikiroo.be/?a=commitdiff_plain;h=44ffa1fb3a22918f4b0875c7f54f4d7984ab44bb;p=fanfix.git LoginResult: fix cookie login --- diff --git a/LoginResult.java b/LoginResult.java index dadd16b..ddc148b 100644 --- a/LoginResult.java +++ b/LoginResult.java @@ -39,16 +39,11 @@ public class LoginResult { * @param subkey * a sub-password (can be NULL) * @param option - * an option assigned to this user (can be NULL) + * an option assigned to this login (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.cookie = generateCookie(who, key, subkey, option); this.success = true; } @@ -110,9 +105,8 @@ public class LoginResult { 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.cookie = generateCookie(who, key, subkey, + opts); this.option = opts; this.success = true; } @@ -191,4 +185,27 @@ public class LoginResult { return "Login failed without giving a reason"; } + + /** + * Generate a cookie. + * + * @param who + * the user name (can be NULL) + * @param key + * the password (can be NULL) + * @param subkey + * a subkey (can be NULL) + * @param option + * an option linked to the login (can be NULL) + * + * @return a fresh cookie + */ + private String generateCookie(String who, String key, String subkey, + String option) { + String wookie = CookieUtils.generateCookie(who + key, 0); + return wookie + "~" + + CookieUtils.generateCookie( + wookie + (subkey == null ? "" : subkey) + option, 0) + + "~" + option; + } } \ No newline at end of file