spring - 如何使用spring检测tomcat session 过期

标签 spring tomcat spring-security

我正在使用 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/

相关文章:

使用 JBoss/Spring 和 NetBeans 部署 WebAppp 时出现 javax.naming.NameNotFoundException

java - 模拟 UriInfo 不起作用

tomcat - 在 Weblogic 中运行/模拟 Tomcat 服务器

java - 如何从 JWT token 身份验证获取声明值

java - 从 Spring Boot 1.5-2、Spring Security 4-5 升级后,Spring security 不再重定向到登录页面

java - Hibernate ServiceImplementation抛出NullPointerException

java - Spring 状态机 - 为什么文档使用静态类

java - getRemoseUser() 使用简单的登录 html 表单返回 null

validation - 在 Web 应用程序中验证 FirstName

java - Spring Security 自定义 AuthenticationSuccessHandler 被忽略