Ho sviluppato un'applicazione Web utilizzando la sicurezza Spring. Per il login ottiene l'accesso da LDAP. Ora voglio gestire la sessione usando la stessa sicurezza di primavera, posso vedere usando authentication.getName()
Sto ottenendo il username
e posso anche ottenere il sessionID
.Gestione sessione utilizzando Spring Security: sessioni simultanee
Ora voglio assicurarmi che se lo stesso utente sta tentando di accedere dallo stesso sistema usando un altro browser, dovrebbe ricevere un messaggio che dice che è già registrato nel suo account.
Qualcuno può dare un'idea di come ottenere questo ????
<security:session-management
invalid-session-url="/login.jsp?error=sessionExpired"
session-authentication-error-url="/login.jsp?error=alreadyLogin">
<security:concurrency-control
max-sessions="1"
expired-url="/login.jsp?error=sessionExpiredDuplicateLogin"
error-if-maximum-exceeded="false" />
</security:session-management>
Quando uso questo e cercare di effettuare il login utilizzando un altro browser mi dà il seguente errore:
HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
enter code here
ho la configurazione fsame come lei suggerisce. Plus JdbcTokenRepositoryImpl. Con tutto questo, accedo con un browser; e poi accedo di nuovo con un altro. Sembra che il secondo sia loggato, ed è davvero così. Il mio problema è, ho clik un collegamento dal primo browser ottengo la seguente eccezione: 'Estado HTTP 500 - PreparedStatementCallback; cattiva grammatica SQL [cancella da persistent_logins dove username =?]; [blah blah]: la tabella "gbt.persistent_logins" non esiste. E il tavolo è in realtà scomparso dal DB !!! Qualcuno ha un'idea di cosa sta succedendo? – kazbeel