我有一个使用表单身份验证的JSF登录页面。我通过调用HttpServletRequest.login(用户名,密码)登录用户。首先调用ExternalContext.invalidateSession(),然后为当前用户调用HttpServletRequest.logout()来完成注销。如何跟踪使用JSF2和Servlet 3登录的用户
我的计划是通过在用户登录时随时添加到列表中,以便在用户登出时随时登录并从列表中删除,从而跟踪登录的用户在应用程序作用域列表中。
我有两个担心这种方法:
如果已经登录尝试,用户无需先退出再登录,我想无效现有会话,并做一些清理工作。如何访问给定登录用户的会话?我也可以使用此功能强制注销某些用户。
如果会话过期(例如超时)我想从登录用户列表中删除用户。我如何听会话到期?
您对问题1的回答是我正在考虑的问题,但希望得到不同的解决方案。对于第二个问题,我会尝试实现HttpSessionListener#sessionDestroyed()并查看它是如何发生的。谢谢。 – Zak
不客气。 – BalusC