httpsession setmaxinactiveinterval不能正常工作时间已设置

mzillmmw  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(287)

我有一个springweb应用程序。我使用springsecurity进行身份验证,并使用socket将数据自动推送到客户端。一切正常。我有一个监听器为这样的会话设置超时

public class SessionListener implements HttpSessionListener {

private final Logger LOGGER = LoggerFactory.getLogger(SessionListener.class);

@Override
public void sessionCreated(HttpSessionEvent sessionEvent) {
    LOGGER.info("{}: has created at : {}", sessionEvent.getSession().getId(), DateTimeUtil.toStringDate(new Date(), DateUtils.DATE_TIME_FORMAT));
    sessionEvent.getSession().setMaxInactiveInterval(60);
}

@Override
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
    LOGGER.info("{}: has Destroyed at : {}", httpSessionEvent.getSession().getId(), DateTimeUtil.toStringDate(new Date(), DateUtils.DATE_TIME_FORMAT));
}

并且在应用程序中设置了会话超时:

server.session.cookie.max-age=2592000
server.session.timeout=2592000

因此,当用户在60秒内没有执行任何操作并且我的套接字将断开时,我的会话将处于非活动状态。它工作,但似乎不完全是60秒,正如我看到的,我的插座将是一个断开超过2分钟(~120秒)。那么“setmaxinactiveinterval”方法是如何工作的呢?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题