Jetty 8 установил "session-timeout" без web.xml?

Я пытаюсь установить значение session-timeout во встроенный экземпляр Jetty 8.

С встроенным Jetty, как я могу программно установить значение session-timeout, которое в противном случае было бы установлено в web.xml следующим образом:

 <session-config>
     <session-timeout>15</session-timeout>
 </session-config>

Спасибо!

Ответ 1

Получите доступ к обработке/управлению сессиями в вашем WebAppContext и установите его.

WebAppContext app = new WebAppContext(....);
... 
app.getSessionHandler().getSessionManager().setMaxInactiveInterval(timeout);

Вот как это делает сама Джетти.

Примечание. SessionManager.setMaxInactiveInterval(int) в секундах, а не в миллисекундах.

Ответ 2

2019-05-11

Для версии Jetty 9.4.12.v20180830 со следующей настройкой ServletContextHandler это:

ServletContextHandler webappContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
... 
webappContext.getSessionHandler().setMaxInactiveInterval(timeout_in_sec);

(Нет промежуточного вызова getSessionManager())