首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot + Spring Session HttpSessionListener不工作

Spring Boot + Spring Session HttpSessionListener不工作
EN

Stack Overflow用户
提问于 2016-02-25 03:09:04
回答 1查看 2.9K关注 0票数 0

我有一个spring boot (1.3.2)应用程序,其中我实现了一个HttpSessionListener。我从@Configration类注册了监听器

代码语言:javascript
复制
@Configuration
@EnableRedisHttpSession
public class ApplicationSessionConfiguration {

@Bean
public ServletListenerRegistrationBean<HttpSessionListener> sessionListener() {
    return new ServletListenerRegistrationBean<HttpSessionListener>(new SessionListener());
}

}

我已经调试了ServletListenerRegistrationBean.onInitialize方法,并且侦听器正在向ServletContext注册。现在的问题是,当我对应用程序进行一个虚拟的REST调用时,会话被正确创建并作为会话cookie发送回来,但HttpSessionListener.createSession方法从未被调用。我不确定我在这里遗漏了什么。

EN

回答 1

Stack Overflow用户

发布于 2016-02-25 06:40:36

看起来你需要的功能还没有在稳定的版本中发布。然而,根据this ticket的说法,这是固定的,并且在spring-session的1.1.0 M1版本中可用。您可能想尝试spring-session的1.1.0.RC1版本,看看这是否对您的需求有所帮助。有关如何完成此操作的确切详细信息,请参阅in this doc link

如果不能选择使用1.1.0.RC1版本(或者如果您出于某种原因不喜欢使用RC1 ),您仍然可以通过使用自己的实现(比如MyCookieHttpSessionStrategy)扩展默认的CookieHttpSessionStrategy,然后覆盖onNewSession(..)来拦截会话创建和销毁事件。和onInvalidateSession(..)截获这些事件。将MyCookieHttpSessionStrategy注册为普通bean,您就完成了所有设置(它将被Redis会话存储库自动获取)。这在Redis会话中工作得很好,我在我的spring boot web应用程序中以这种方式使用这些事件。

希望这能有所帮助!!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35610923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档