我正在使用 spring 运行 wicket 并使用 spring security ,当 tomcat session 时,在 web.xml 中声明的 session 过期
<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 中定义一个 session 事件发布者:
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
此处 HttpSessionEventPublisher
会在 session 创建和过期时发布 session 生命周期事件。
关于spring - 如何使用spring检测tomcat session 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589220/