Таймаут сеанса Grails 3 не работает при развертывании в Tomcat

Я использую Grails 3.2.3. Я увеличил время ожидания сеанса, как описано здесь /questions/5973775/kak-nastroit-vremya-ozhidaniya-seansa-dlya-prilozheniya-grails/5973806#5973806 то есть добавив следующее в application.yml:

server:
   session:
      timeout: 604800 #one week in seconds

Это работает нормально, пока в разработке, т.е. session.getMaxInactiveInterval() возвращает 604800, но когда я развертываю WAR на Tomcat (используя Tomcat 8.5.6), этот параметр тайм-аута сеанса не отражается, и значение по умолчанию составляет 1800 секунд.

"org.springframework.boot:spring-boot-starter-tomcat" установлен в provided в build.gradle,

(Я ранее изменял время ожидания сеанса, как я описал здесь /questions/5973775/kak-nastroit-vremya-ozhidaniya-seansa-dlya-prilozheniya-grails/5973804#5973804 но позже я понял, что это связано со встроенным tomcat, так что переключился на выше application.yml установка)

Я что-то здесь упускаю?

1 ответ

Решение

Лучше всего предположить, что контейнер Tomcat, в котором вы развертываете, не использует

server:
   session:
      timeout: 604800

значение, которое вы устанавливаете, так как это только директива для встроенного контейнера Tomcat. При развертывании в режиме войны необходимо настроить сервер Tomcat, на котором вы развертываете:

https://tomcat.apache.org/tomcat-8.0-doc/config/http.html

Другие вопросы по тегам