【发布时间】:2020-07-11 00:31:32
【问题描述】:
我在我的 Spring MVC 应用程序中实现了 HttpSessionListener,但它不起作用。 在我的应用程序中,会话由 Spring Jdbc Session 管理并与 Spring Security 一起使用。 我从一些答案中了解到 Spring jdbc 不支持 HttpSessionEventPublisher。
在每种情况下,首先我尝试使用经典方式在 web.xml 中配置监听器。 配置下方:
<!-- BEGIN - IDG - session management -->
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
<!-- END - IDG - session management -->
<!-- BEGIN - IDG - security -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- END - IDG - security -->
<listener>
<listener-class>
it.gov.ali.listener.CustomSessionListener
</listener-class>
CustomSessionListener 实现 HttpSessionListener 及其方法 sessionDestroyed 和 sessionCreated。
现在,当我使用 Spring Security 注销时,会话正确无效,并且我的数据库中的行会话被删除,但我没有点击我的自定义侦听器。
有没有一种特殊的方法可以使用 spring jdbc 配置会话侦听器,或者我错过了什么?
谢谢大家。
【问题讨论】:
标签: spring session listener config