1

我目前有一个 Spring 3 项目,我想做的是在会话到期时检索我的会话。我一直在做一些研究,显然HttpSessionBindingListener可以处理这个问题,尽管在一个 Spring 项目中,我似乎无法弄清楚如何正确地实现它。在我的会话中,我保存了一个UserDetailsImpl包含我的对象的User对象。我应该HttpSessionBindingListener在规定的对象上实施吗?

需要明确的是,我想要做的是在会话对象过期之前从会话对象中检索用户的 ID。

编辑:显然HttpSessionBindingListener在 Websphere 中不能正常工作,但在 Tomcat 中没问题。还有其他选择吗?

4

1 回答 1

1

您还可以在以下位置注册侦听器web.xml

<listener>
    <listener-class>com.example.MyHttpSessionListener</listener-class>
</listener>

以及使用方法sessionDestroyed()

此答案中对此进行了详细描述:https ://stackoverflow.com/a/372​​0512/516167

在这个监听器中注入 Spring 应用程序上下文,就像这个问题中描述的那样:

如何使用 Spring 将依赖项注入 HttpSessionListener?

此处描述了其他可能的解决方案:

使用弹簧安全性捕获注销/会话超时

于 2014-01-09T21:56:37.923 回答