mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-17 10:15:27 -04:00
Normalize stored usernames on auth load
verify_password() and create_session() both call .strip().lower() on the incoming username, but _load() stored keys verbatim from auth.json. Any mixed-case key (e.g. written by manual edit or a future migration) would never match, producing a permanent 'Invalid credentials' error. Fix: lowercase all keys at load time so the in-memory dict always matches what the login path expects. Fixes #423
This commit is contained in:
@@ -73,6 +73,15 @@ class AuthManager:
|
|||||||
if os.path.exists(self.auth_path):
|
if os.path.exists(self.auth_path):
|
||||||
with open(self.auth_path, "r", encoding="utf-8") as f:
|
with open(self.auth_path, "r", encoding="utf-8") as f:
|
||||||
self._config = json.load(f)
|
self._config = json.load(f)
|
||||||
|
# Normalize all stored usernames to lowercase so they match
|
||||||
|
# the .strip().lower() applied at login/verify time. Fixes
|
||||||
|
# "Invalid credentials" when auth.json was written with
|
||||||
|
# mixed-case keys (e.g. via manual edit or a future migration).
|
||||||
|
if "users" in self._config:
|
||||||
|
self._config["users"] = {
|
||||||
|
k.strip().lower(): v
|
||||||
|
for k, v in self._config["users"].items()
|
||||||
|
}
|
||||||
logger.info("Auth config loaded")
|
logger.info("Auth config loaded")
|
||||||
else:
|
else:
|
||||||
self._config = {}
|
self._config = {}
|
||||||
|
|||||||
Reference in New Issue
Block a user