我正在用spring运行检票口并使用spring security,当tomcat会话时,web.xml中声明的那个会话过期了
<session-config>
<session-timeout>1</session-timeout>
</session-config>
我想使用过滤器(不覆盖现有的 httpSession 或 Session )捕获此事件,如何使用 spring 来实现?
10倍
我正在用spring运行检票口并使用spring security,当tomcat会话时,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
每当会话创建和过期时,这里都会发布会话生命周期事件。