Desidero poter disconnettere tutti gli utenti registrati a livello di programmazione. Come forzare il logout di tutti gli utenti su alcuni eventi?Come si fa a disconnettere tutti gli utenti che hanno effettuato il login in primavera?
risposta
prima definire HttpSessionEventPublisher in web.xml
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
Quindi definire <session-management>
nel file primavera security.xml.
Ora, utilizzare SessionRegistry
nel metodo del controller per invalidare tutte le sessioni. Sotto il codice recupera tutte le sessioni attive.
List<SessionInformation> activeSessions = new ArrayList<SessionInformation>();
for (Object principal : sessionRegistry.getAllPrincipals()) {
for (SessionInformation session : sessionRegistry.getAllSessions(principal, false)) {
activeSessions.add(session);
}
}
Su ogni sessione attiva, è possibile chiamare il metodo expireNow()
per scadere o invalidare.
@Maksym Demidas Come posso ottenere ** Session ** per ** SessionInformation **? – gstackoverflow
La risposta descrive come ottenere informazioni solo sulle sessioni attive ma non descrive come invalidarle. – gstackoverflow
@gstackoverflow non c'è modo di ottenere Session by SessionInformation in Servlet API (e per una buona ragione - non è un'operazione sicura). Se hai davvero bisogno puoi provare a fare una soluzione manuale ([qualcosa come questo] (http://stackoverflow.com/questions/3092363/how-can-i-load-java-httpsession-from-jsessionid/3092495# 3092495)) –
Ketan ti dà la risposta che stai cercando, se cambi il secondo per blocco e usa session.expireNow();
invece activeSessions.add(session);
finirai con tutte le sessioni attive scadute.
dove posso trovare la sessione? – gstackoverflow
se leggi attentamente il codice di esempio di Ketan, troverai che 'session' è ottenuto dal metodo' sessionRegistry.getAllSessions'. – malaguna
si prega di essere attenti e vedere il tipo di ritorno con attenzione – gstackoverflow
- 1. Come trovare tutti gli utenti loggati e quegli utenti che accedono al sito ma non hanno effettuato l'accesso?
- 2. Rails 4 escogitare: Come disconnettere tutti gli utenti
- 3. Elenco degli utenti che hanno effettuato l'accesso in Wordpress?
- 4. Trovare tutti gli utenti che hanno nomi duplicati
- 5. WordPress visualizza post privati per gli utenti che hanno effettuato l'accesso - come disattivare questa funzionalità?
- 6. Discriminare gli utenti senza autenticazione in primavera
- 7. limitare tutti gli utenti a 1 sessione
- 8. Interrogazione Gli utenti che hanno 'come' la mia pagina Facebook
- 9. redirect laravel se effettuato il login
- 10. Come cambiare NSMenuItem Titolo (Login disconnettere)
- 11. Come trovare tutti gli utenti iscritti a un argomento in primavera Websockets
- 12. In UNIX, come trovare utenti che hanno effettuato l'accesso ieri o prima
- 13. Il plug-in di Facebook Like Box non viene visualizzato per gli utenti che hanno effettuato la disconnessione; solo per gli utenti registrati
- 14. Come cambiare gli utenti in TortoiseSVN
- 15. Oracle - concedere privilegi a tutti gli utenti
- 16. utenti SELECT * che hanno una certa età
- 17. Django Ottieni tutti gli utenti
- 18. come autenticare gli utenti con login facebook in java
- 19. Accesso in modo programmatico a tutti gli utenti Menu Start
- 20. I siti web come Facebook store hanno effettuato l'accesso agli utenti in cookie o sessioni?
- 21. Come si fa a rendere l'app aperta al login?
- 22. ASP.NET MVC Elenca tutti gli utenti
- 23. perché laravel mi ha effettuato il login quando si utilizza la sentinella?
- 24. Elenco di tutti gli utenti che possono connettersi tramite SSH
- 25. Controlla se l'utente ha effettuato il login New Facebook API
- 26. Come scoprire che tutti gli abbonati a un argomento JMS hanno risposto?
- 27. FBSession.activeSession.isOpen restituisce NO anche se l'utente ha effettuato il login
- 28. Come disabilitare il messaggio Devises - "Hai già effettuato l'accesso." - quando si reindirizza l'indice degli utenti?
- 29. Come disconnettere correttamente un'applicazione Web Java EE 6 dopo aver effettuato l'accesso
- 30. gli utenti hanno assegnato un ruolo sql azzurro
La risposta descrive come ottenere informazioni solo sulle sessioni attive, ma non descrive come invalidarle. – gstackoverflow
@gstackoverflow - la risposta dice di chiamare 'expireNow()' nelle sessioni attive per causare il logout. Stai cercando qualcos'altro? –
@Neil Smithline risponde silenzioso su come ottenere questa sessione. Quindi la risposta è incompleta e quindi non accettata dall'autore – gstackoverflow