我正在使用spring运行wicket并使用spring security,当tomcat session时,在web.xml中声明的那个过期了
<session-config> <session-timeout>1</session-timeout> </session-config>
我想使用过滤器(不覆盖现有的httpSession或Session)捕获此事件,如何使用spring来实现呢?
10倍
您可以使用侦听器类来实现此目的。定义一个侦听器组件,如下所示:
@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每当会话创建和过期时,此处都会发布会话生命周期事件。
HttpSessionEventPublisher