Без какого-либо расширения и в зависимости от собственных классов Tomcat, я бы не знал, как можно изменить программный вариант по умолчанию <session-timeout>
, как только это будет установлено.
Альтернативным методом может быть сохранение измененного значения таймаута сеанса отдельно (возможно, в базе данных), - которое ваша служба может нести ответственность за обновление/извлечение. Затем вы можете использовать HttpSessionListener
для изменения тайм-аута для вновь созданных сеансов на основе этого значения.
Например:
public class SessionTimeoutModifier implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event) {
int timeout = sessionService.getSessionTimeout(); // Gets your value
event.getSession().setMaxInactiveInterval(timeout); // Override default
}
...
Веб передний конец (сервлет) может затем быть разработаны, которые могут мутировать свой тайм-аут сеанса через sessionService.setSessionTimeout(value)
.
Не тот точный ответ, который вы ищете, но один из возможных способов его достижения.
Спасибо! я попробую – lior