[Java] Perché mi ricordi di un token?



Answers

Perché per definizione, una sessione termina non appena l'utente chiude il suo browser. Pertanto il cookie di sessione scadrà non appena il browser viene chiuso.

Poiché lo scopo della funzionalità remember-me è di mantenere l'utente connesso attraverso le sessioni, le informazioni memorizzate nel cookie remember-me devono persistere durante i riavvii del browser.

Per ottenere questa funzionalità "pronta per l'uso", puoi utilizzare un framework come Spring Security .

Question

Durante l'implementazione della funzione "ricordami di me" per un sito web, perché complichiamo le cose e abbiamo un token chiamato remember me token a parte un token di sessione.

Per quanto mi riguarda, ricordati che il token può essere utilizzato per accedere e creare un nuovo token di sessione mentre il token di sessione dura solo alcuni minuti o fino al momento in cui l'utente chiude il browser. Perché non possiamo aumentare la durata della scadenza del token di sessione per il tempo desiderato fino al quale vogliamo che l'utente effettui l'accesso?

Ho bisogno di implementare tale funzionalità in un'applicazione basata su flex su Tomcat e mi chiedo la necessità di ricordarmi i token

Inoltre, è possibile ottenere questa funzionalità fuori dalla scatola all'interno di Tomcat?




Le persone hanno correttamente affermato che la sessione contiene un numero di oggetti pesanti. Con un numero sufficiente di utenti nel tuo sistema, se provi a tenerli tutti nella quantità limitata di memoria del server, alla fine arresti il ​​server quando la memoria massima è fuori.

Ho lavorato a un progetto una volta in cui un aggiornamento del codice di produzione aveva una perdita di memoria. Era un progetto J2EE (sì J2EE non Java EE). Quando un utente ha effettuato l'accesso per verificare la propria fattura presso questa società telefonica, la sessione utente non è stata rilasciata correttamente dalla memoria (non ricordo la causa ma è stato sicuramente il problema). Questo bug simula ciò che stai chiedendo di fare di proposito.

Il server ha continuato a bloccarsi. Quindi mettiamo un profiler su di esso. Guardavamo che l'uso della memoria aumentasse durante il giorno fino a quando non si è esaurito e poco dopo l'arresto anomalo del server dell'app. Abbiamo aggiunto memoria e aumentato l'impostazione della memoria VM. Ho detto loro che si trattava di una perdita di memoria, ma poiché non ero un "esperto di server" da $ 200,00 / ora, la gente non voleva crederci perché le persone che erano lì credevano ancora che il netturbino fosse tutto potente invece di essere semplicemente molto buono.

Due giorni dopo (ha influito sul sistema "visualizza la tua fattura", non sul sistema aziendale principale, ovvero non aveva lo stesso carico di lavoro o i requisiti di memoria anche se aveva un sacco di memoria hardware nei server), hanno assunto un paio di $ 200,00 all'ora consulenti che dopo un giorno hanno detto loro che l'app aveva la perdita di memoria di cui sopra. Era stato risolto e tutto andava bene ... meno le spese per i consulenti.

In ogni caso, ecco il take away: se non si terminano le sessioni utente quando gli utenti si disconnettono o chiudono il browser (timeout della sessione), si corre il rischio reale di esaurire la memoria e arrestare i server. Soprattutto se il tuo sito o la tua app ha un numero significativo di utenti. Come menzionato da altri, i token / i cookie leggeri sono i migliori.




Links