当前位置: 首页 > 知识库问答 >
问题:

使用Redis在Spring-Session上添加会话破坏事件

闻昊英
2023-03-14

有人知道如何在Redis的Spring会话中添加会话破坏事件吗?我读到正常的方法是不可能的。我愿意这样做,因为我需要在一个会话被破坏(超时或注销)后做一些清理过程。我真的很感激你们的帮助,谢谢你们。

共有1个答案

方宏富
2023-03-14

RedisoperationssessionRepository将发布org.springframework.session.events.sessiondestroyedevent(或者更确切地说,它的子类sessiondeletedeventsessionexpiredevent)。如果您使用@enableRedisHttpSession配置支持,这将自动发生。

然后,这些事件将依次转换为javax.servlet.http.httpsessionEvent,然后转发给所有httpsessionListener,假设它们作为bean注册到应用程序上下文中。

有关更多详细信息,请参阅Spring SessionListener参考手册的HttpSessionListener部分。

 类似资料:
  • 编辑1: 我目前从一个Main类调用它,如下所示: } 原文: 解释后代码如下: 我有一个带有JavaConfig的Spring应用程序,称之为主应用程序,它从库中导入另一个Spring JavaConfig类。这个导入的JavaConfig应该用一个方面包装在主应用程序中创建的任何数据源,这个方面有一个自动连接的LogDelegator。 只要主应用程序只包含一个数据源,一切都正常。但是,当我向

  • 我正在使用spring boot开发一个小应用程序。我的问题是,我需要显示用户的名字时,一个用户的身份验证正确。每次身份验证(每次登录输入用户名和密码)都会正确显示名字。但是如果我们关闭浏览器并在会话超时之前重新打开它,而没有输入用户名和密码,则不会显示First name。 身份验证时我的口供 安全配置 会话列表 我参考了Java:为什么当tab或浏览器关闭时http会话不被破坏?,正如他们所说

  • 问题内容: 我听过关于此主题的不同回答,那么销毁PHP会话的肯定方法是什么? 在最简单的情况下,这是否足以真正终止用户与服务器之间的会话? 问题答案: 要销毁会话,您应该采取以下步骤: 删除会话数据 使会话ID无效 为此,我将使用以下代码: 为了确保会话ID无效,您应该只允许脚本启动的会话ID。因此,设置一个标志并检查它是否被设置: 此外,您可以使用此时间戳定期交换会话ID,以缩短其寿命:

  • 我已经编辑了php配置以保存Redis上的会话。一切正常,但我意识到,有一天已经过去了,通过在redis-cli上运行命令键*,显示了一个巨大的php-session条目列表。我的问题是php是否会在任何时候删除这些键,或者我必须做一些事情来防止这种情况发生。我对此很担心。

  • 我正在用Spring开发一个网站,我使用Spring Security进行身份验证。我有个无法解决的问题: 当会话被破坏(例如WebSecurityConfigurerAdapter中的更改)时,会显示第二个div导致内部服务器错误,因为session.User对象为NULL。 当用户会话被破坏时,如何使用户“未经身份验证”? 编辑:SecurityConfig 调用/注销时的Spring Sec

  • 我们正在用Spring云构建一个基于微服务的系统,我们使用Zuul作为边缘服务器和一些后端微服务。在其中一个后端服务中,我们使用Redis来管理,并存储一些与用户相关的对象。 直接访问微服务时一切正常,但通过Zuul访问时出错,因为备份微服务总是获得一个新的ID。我尝试使用和将cookie转发给使用的微服务,但微服务最终没有使用cookie值在Redis中创建spring:sessions。 任何