HttpSessionListener在我的Spring MVC应用程序上不起作用

问题描述 投票:0回答:1

我已经在我的Spring MVC应用程序中实现了HttpSessionListener,它不起作用。在我的应用程序中,会话由Spring Jdbc会话管理,并与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
1个回答
0
投票

如果使用Spring会话jdbc,则HttpSession由spring会话支持。因此,如果您正在使用spring-session 2.2.1.RELEASE依赖性,请在SessionRepositoryFilter类的getSession方法的第314行查找,这可能很有用,您可以重写此类以获取所需的结果。

© www.soinside.com 2019 - 2024. All rights reserved.