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