一尘不染

如何使用Spring检测tomcat会话到期

tomcat

我正在使用spring运行wicket并使用spring security,当tomcat session时,在web.xml中声明的那个过期了

<session-config>
    <session-timeout>1</session-timeout>
</session-config>

我想使用过滤器(不覆盖现有的httpSession或Session)捕获此事件,如何使用spring来实现呢?

10倍


阅读 263

收藏
2020-06-16

共1个答案

一尘不染

您可以使用侦听器类来实现此目的。定义一个侦听器组件,如下所示:

@Component
public class AppLogoutListener implements
        ApplicationListener<SessionDestroyedEvent> {


    @Override
    public void onApplicationEvent(SessionDestroyedEvent event) {
        // from event you can obtain SecurityContexts to work with


    }

}

您需要在web.xml中定义会话事件发布者:

    <listener>
        <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
    </listener>

HttpSessionEventPublisher每当会话创建和过期时,此处都会发布会话生命周期事件。

2020-06-16