Class OTPManager

java.lang.Object
com.modulink.Model.OTP.OTPManager

public class OTPManager extends Object
Gestore globale per la generazione, memorizzazione e validazione dei codici One-Time Password (OTP).

Questa classe implementa un meccanismo di storage in-memory basato su HashMap per associare temporaneamente codici di sicurezza univoci e oggetti UtenteEntity all'indirizzo email dell'utente. Viene utilizzata prevalentemente nei flussi di autenticazione a due fattori (2FA) e nel recupero credenziali.

Nota Tecnica: La memorizzazione è volatile; il riavvio dell'applicazione comporta la perdita di tutti i codici OTP attivi.

Since:
1.0.0
Version:
1.2.7
Author:
Modulink Team
  • Field Details

    • otpMap

      private static final HashMap<String,String> otpMap
      Mappa di associazione tra l'indirizzo email dell'utente e il codice OTP generato.

      La chiave è la stringa email, il valore è la stringa alfanumerica dell'OTP.

    • otpUserEntityMap

      private static final HashMap<String, UtenteEntity> otpUserEntityMap
      Mappa di associazione tra l'indirizzo email dell'utente e l'entità utente completa.

      Memorizza lo stato dell'utente durante il processo di verifica per permettere operazioni post-validazione senza ulteriori query al database.

  • Constructor Details

    • OTPManager

      public OTPManager()
      Costruttore predefinito della classe.
      Since:
      1.0.0
  • Method Details

    • generateOTP

      private String generateOTP()
      Genera internamente un codice alfanumerico casuale di 6 caratteri.

      Utilizza un set di caratteri comprendente lettere maiuscole (A-Z) e cifre (0-9). La casualità è garantita dall'istanza di Random.

      Returns:
      Una stringa di 6 caratteri rappresentante l'OTP.
      Since:
      1.0.0
    • addOTP

      public void addOTP(String email, UtenteEntity utente)
      Genera e registra un nuovo codice OTP per una specifica email utente.

      Se per l'email fornita esiste già un codice attivo, questo viene invalidato e rimosso prima di inserire il nuovo identificativo. Associa inoltre l'entità utente per persistenza temporanea.

      Parameters:
      email - L'indirizzo email del destinatario.
      utente - L'oggetto UtenteEntity associato alla sessione di verifica.
      Since:
      1.0.0
    • getOTPEmail

      public String getOTPEmail(String email)
      Recupera il codice OTP associato a un'email.
      Parameters:
      email - La chiave di ricerca (email utente).
      Returns:
      La stringa del codice OTP se presente, altrimenti null.
      Since:
      1.0.0
    • removeOTPEmail

      public void removeOTPEmail(String email)
      Rimuove il codice OTP attivo per un'email specifica.

      Da utilizzare tipicamente dopo una validazione andata a buon fine o in caso di scadenza timeout.

      Parameters:
      email - L'email da ripulire.
      Since:
      1.1.0
    • getOTPUser

      public UtenteEntity getOTPUser(String email)
      Recupera l'entità utente associata a una sessione OTP attiva.
      Parameters:
      email - L'email associata all'utente.
      Returns:
      L'istanza di UtenteEntity salvata nel manager.
      Since:
      1.0.0
    • removeOTPUser

      public void removeOTPUser(String email)
      Rimuove l'associazione dell'entità utente per un'email specifica.
      Parameters:
      email - L'email da ripulire.
      Since:
      1.1.0