如何在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/