我们最近开始在我们的项目中使用 spring-session。这是一个遗留应用程序,我们有一些HttpSessionListener。因此,当会话过期或用户无效时,会sessionDestroyed(HttpSessionEvent se)
调用会话方法。你可以通过调用方法来获取HttpSession
即将被销毁的getSession()
HttpSessionEvent
春季会议也有类似的东西。Redis Session Repository 实现将触发org.springframework.session.events.SessionDestroyedEvent
事件,您可以向其添加ApplicationListener以进行一些处理。
但这并不能满足我的需要。
我遇到的问题是,它不能用于迁移我们现有的 HttpSessionListener 以使用这些,即使是因为 2 个主要原因
Spring Session 触发的事件只给出即将被销毁的会话 id。它不提供整个会话对象的副本。因此,如果我现有的 HttpSessionListener 有一些逻辑可以使用某些属性进行某些处理,我现在不能这样做。
创建会话时没有事件。我们有 HttpSessionListener 在创建会话时会做一些工作。
那么,为了让我们在春季会话中使用 HttpSessionListener 所拥有的功能,我必须有哪些选择?