gpt4 book ai didi

java - spring/security 中的自定义 session 超时

转载 作者:行者123 更新时间:2023-11-30 10:37:10 26 4
gpt4 key购买 nike

如何在spring中自定义session超时.. session 超时参数/输入在 web.xml 中设置为 15 分钟。它工作正常..我想在此 session 超时发生之前执行几行,并且应该能够决定是否继续 session 超时。这意味着..我想检查 session 中的一些参数,然后有选择地继续处理一些用户的 session 超时(即在 15 分钟不活动后),而其他用户永远不会发生此超时。

最佳答案

使用 HttpSessionListener

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class SessionListener implements HttpSessionListener {

@Override
public void sessionCreated(HttpSessionEvent event) {
// .. event.getSession().getAttribute("xxxx")
event.getSession().setMaxInactiveInterval(5*60);
}

@Override
public void sessionDestroyed(HttpSessionEvent event) {
System.out.println("==== Session is destroyed ====");
}
}

在 web.xml 中注册

<web-app ...>
<listener>
<listener-class>yourpackage.SessionListener</listener-class>
</listener>
</web-app>

或者在你的应用初始化器中

public class AppInitializer implements WebApplicationInitializer {

//...
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
servletContext.addListener(new SessionListener());
}
//...

}

关于java - spring/security 中的自定义 session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40214042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com