Добрый вечер!
Сменил версию 2.1 → 2.2.0 → 2.2.1 последовательно. На версии 2.2.1 в production стала внезапно слетать сессия и показывать login страничку. Закономерности не увидел. Не важно под кем заходить, admin или другая роль. Если слетает сессия, то иногда при нажатии на dataGrid получаю в лог следующее
Caused by: java.lang.IllegalStateException: ResourceRole not found by code: ANONYMOUS
при нажатии в области menu tab вылетает в login.
Сборка для prod ./gradlew -Pvaadin.productionMode=true bootJar
В dev mode ошибок и такого поведения не наблюдается.
В prod приложение работает в docker и стоит за nginx с ssl
возможно проблема в правилах nginx.
На версии 2.1 все работало корректно.
Прошу совета куда глядеть .
PS: заметил особенность, если в login страничке отметить checkbox “remember me”, то сессия , либо слетает сразу, т.е. приходится войти второй раз и дальнейшая работа идет без сбоев, либо вход и работа проходят штатно .
Не могли бы Вы приложить полный лог приложения, а так же проверить лог консоли браузера и/или вкладки network на наличие ошибок, в частности 403 Forbidden?
Есть предположение, что проблема может быть связана с библиотекой atmosphere, которую использует Ваадин. Так же, Вы очень поможете, если обновите версию Ваадина в своем проекте и проверите будут ли изменения к лучшему. Для этого нужно явно указать версию Ваадин плагина
plugins {
id 'io.jmix' version '2.2.1.1'
id 'java'
id 'com.vaadin' version '24.3.8' <--- тут добавить
}
apply plugin: 'org.springframework.boot'
//apply plugin: 'com.vaadin' <--- вот это удалить
Спасибо за логи, пока причина не ясна. не могли бы Вы попробовать вывести в лог актуальные таймауты сессии на старте приложения. И создать листенеры на HttpSessionCreatedEvent/HttpSessionDestroyedEvent и логировать их, а так же включить
Добрый день!
В логах увидели подозрительные отбрасывания запросов на /VAADIN/push с 403 ошибкой из-за CSRF.
Будет у вас возможность отключить CSRF для этого эндопойнта, зарегистрировав следующий бин в проекте, и понаблюдать за приложением после этого?