Class AuthService

java.lang.Object
it.unisa.diem.wordageddon_g16.services.AuthService
All Implemented Interfaces:
Serializable

public class AuthService extends Object implements Serializable
Classe di 'servizio' utilizzata per l'autenticazione e la gestione degli utenti nell'applicazione Wordageddon.

Permette la registrazione, login, logout e gestione della sessione utente. Utilizza JDBCUserDAO per la persistenza e AppContext per il tracciamento dell'utente corrente.

See Also:
  • Field Details

  • Constructor Details

    • AuthService

      public AuthService(AppContext context, JDBCUserDAO userDAO)
      Costruttore della classe AuthService
      Parameters:
      context - AppContent contesto applicativo corrente contenente l'utente attivo
      userDAO - DAO per la gestione degli utenti
  • Method Details

    • login

      public boolean login(String username, String password)
      Effettua il login utente verificando le credenziali fornite. Se le credenziali sono valide:
      • Imposta l'utente corrente nel AppContext
      • Salva la sessione localmente
      Parameters:
      username - nome utente del textField
      password - password del textField
      Returns:
      true se il login ha successo, false altrimenti
    • register

      public boolean register(String username, String password, boolean firstUser)
      Registra un nuovo utente con nome e password specificati. Se è il primo utente, viene creato come amministratore.
      Salva automaticamente la sessione se la registrazione va a buon fine.
      Parameters:
      username - nome utente da registrare
      password - password associata
      firstUser - true se è il primo utente in assoluto
      Returns:
      true se la registrazione ha successo, false se l'utente esiste già
    • saveSession

      private void saveSession(User user)
      Salva l'oggetto User corrente in un file locale come sessione attiva.
      Parameters:
      user - utente da salvare come sessione
    • loadSession

      public boolean loadSession()
      Carica la sessione utente precedentemente salvata dal file locale. Se il file esiste e contiene un utente valido:
      • Imposta l'utente corrente nel AppContext
      • Ritorna true
      Returns:
      true se la sessione è stata caricata con successo, false altrimenti
    • logout

      public void logout()
      Esegue il logout dell'utente corrente.

      Rimuove l'utente dal AppContext e cancella il file di sessione.
      Se la cancellazione del file fallisce, viene sollevata una RuntimeException.

    • noUsers

      public boolean noUsers()
      Verifica se non ci sono utenti registrati nel sistema.
      Returns:
      true se il database utenti è vuoto