我有一个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”方法是如何工作的呢?
暂无答案!
目前还没有任何答案,快来回答吧!