xtream-player/USERS_MANAGEMENT.md
2026-03-09 21:07:34 +01:00

4.7 KiB

Správa uživatelů - Xtream Player

Přehled

Uživatelé jsou ukládáni v H2 databázi (~/.xtream-player/users.db). Aplikace vytvoří výchozího uživatele admin/admin při prvním spuštění, pokud žádní uživatelé neexistují.

UserManager - Nástroj pro správu uživatelů

K přidání, smazání nebo úpravě uživatelů slouží třída UserManager, kterou lze spustit jako standalone aplikaci.

Spuštění interaktivního režimu

java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager

Zobrazí menu s následujícími možnostmi:

  1. Přidat uživatele
  2. Smazat uživatele
  3. Aktualizovat heslo
  4. Vypsat všechny uživatele
  5. Ověřit heslo
  6. Odejít

Použití z příkazové řádky

Přidat uživatele

java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager add username password

Smazat uživatele

java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager delete username

Aktualizovat heslo

java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager update username new_password

Vypsat všechny uživatele

java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager list

Ověřit heslo

java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager verify username password

Příklady

Přidať nového administrátora

java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager add admin123 MySecurePassword123

Změnit heslo existujícího uživatele

java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager update admin newPassword456

Zobrazit všechny uživatele

java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager list

Výstup:

╔═══╦════════════════════╦═══════════════════════════════╦═══════════════════════════════╗
║ ID║ Username          ║ Created At                    ║ Updated At                    ║
╠═══╬════════════════════╬═══════════════════════════════╬═══════════════════════════════╣
║  1║ admin              ║ 2026-03-09 10:30:45.123       ║ 2026-03-09 10:30:45.123       ║
║  2║ admin123           ║ 2026-03-09 10:35:12.456       ║ 2026-03-09 10:35:12.456       ║
╚═══╩════════════════════╩═══════════════════════════════╩═══════════════════════════════╝
Total: 2 user(s)

Architektura

UserStore

  • Třída: cz.kamma.xtreamplayer.UserStore
  • Odpovědnost: Správa perzistentního úložiště uživatelů v H2 databázi
  • Metody:
    • initialize() - Initialisace databázové tabulky
    • createUser(username, password) - Vytvoří nového uživatele
    • updatePassword(username, newPassword) - Změní heslo
    • deleteUser(username) - Odstraní uživatele
    • getUser(username) - Retrieves uživatele
    • getAllUsers() - Načte všechny uživatele
    • verifyPassword(username, password) - Ověří heslo
    • userExists(username) - Zkontroluje existenci

UserAuthenticator

  • Třída: cz.kamma.xtreamplayer.UserAuthenticator
  • Odpovědnost: Správa session tokenů a přihlašování
  • Metody:
    • authenticate(username, password) - Přihlášení a vygenerování tokenu
    • validateToken(token) - Ověření tokenu
    • isTokenValid(token) - Kontrola validity tokenu
    • revokeToken(token) - Zrušení tokenu

UserManager

  • Třída: cz.kamma.xtreamplayer.UserManager
  • Odpovědnost: CLI nástroj pro správu uživatelů
  • Režimy:
    • Interaktivní - Menu-driven UI
    • Příkazová řádka - Přímá spuštění příkazů

Bezpečnost

  • Hesla jsou hashována pomocí SHA-256 a zakódována v Base64
  • Session tokeny jsou generovány pomocí SecureRandom a mají platnost 24 hodin
  • Databáze je chráněna stejně jako ostatní aplikační data v ~/.xtream-player/

Migrace ze starý verze

Pokud upgradujete z verze bez databázové autentizace:

  1. Aplikace automaticky vytvoří nový soubor ~/.xtream-player/users.db
  2. Výchozí uživatel admin/admin bude vytvořen automaticky
  3. Můžete přidat nebo upravit uživatele pomocí UserManager