Сессия потока Ваадин 23 не истекает, когда истекает сеанс Spring Session JDBCJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сессия потока Ваадин 23 не истекает, когда истекает сеанс Spring Session JDBC

Сообщение Anonymous »

У меня есть многопроектная установка с бэк-эндом пружины и фронт-эндом потока Vaadin 23. Я пытаюсь синхронизировать жизненные циклы сеанса, так что, когда истекает сеанс первого сеанса, пользовательский интерфейс Vaadin правильно отображает экран с истекшим сессией по умолчанию. Тем не менее, моя ваадинсия, по-видимому, остается в живых даже после истечения сессии самообеспечения. Проект:
  • java: 11
  • Spring: 5.3.30
  • Управление сеансом: Spring-session-jdbc для хранения сеансов в базе данных MySQL. /> Front-End Project: < /strong> < /p>

    java: 11 < /li>
    vaadin: 23.3.11 < /li>
    < /ul>
    worning a strong> < /p>

    В конечную точку моего бэкэнда/сеанса/старта из ui vaadin. /> Срок действия сеанса бэкэнд истекает, что подтверждено моей SessionEventListener, регистрировав SessionDestroyEdevent и из базы данных. Vaadinsession.getCurrent (). Setattribute).

Пример:

Код: Выделить всё

Button pingButton = new Button("Ping UI", e -> {
UI ui = UI.getCurrent();
ui.access(() -> {
try {
VaadinSession.getCurrent().setAttribute("ping", "pong");
Notification.show("Ping successful");
} catch (Exception ex) {
Notification.show("Session expired");
}
});
});
Ожидаемое поведение
Ваадиновый пользовательский интерфейс должен обнаружить сеанс с истекшим сроком действия и отображать «наложение с истечением сеанса». My Pingbutton's Code vaadinsession.getCurrent (). SetatTribute («Ping», «pong») успешно выполняется, и показано «успешное уведомление Ping». Попробовал
Я понимаю, что механизм сердцебиения Ваадина может сохранить основную сеанс HTTP. Я попробовал несколько подходов к синхронизации тайм -аутов, но ни один из них не работал, как и ожидалось. RequestHandler называется, но httprequest.getSession (false), похоже, не возвращается нулевым даже после истечения весеннего сеанса. Это заставляет меня верить, что объект сеанса контейнера сервлета все еще присутствует, или мой обработчик не выполняется в нужное время.import com.vaadin.flow.server.*;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

@WebListener
public class CustomServiceInitListener implements VaadinServiceInitListener {
@Override
public void serviceInit(ServiceInitEvent event) {
event.addRequestHandler((vaadinSession, request, response) -> {
VaadinServletRequest servletRequest = (VaadinServletRequest) request;
HttpServletRequest httpRequest = servletRequest.getHttpServletRequest();
HttpSession httpSession = httpRequest.getSession(false);

if (httpSession == null) {
vaadinSession.close();
return true;
}
return false;
});
}
}
< /code>
Попытка 2: Настройка тайм -аута сеанса Vaadin в web.xml. < /p>
Я удалил пользовательский запрос и попытался использовать параметры инициализации сервлета для управления временем сеанса Vaadin, нацелившись на то, чтобы сделать его более коротким, чем Timeout. Проект:


vaadin
com.vaadin.flow.server.VaadinServlet

session-timeout
25


closeIdleSessions
true

1


vaadin
/*


< /code>
Даже при этой конфигурации сеанс Ваадина не истекает после 25 секунд неактивности. < /p>
Я подозреваю, что существует фундаментальный аспект того, как взаимодействуют весенняя сеанс и сессия Vaadin, я упускаю, особенно в непрессосной среде с использованием web.xml и spring-session-jdbc. /P> Perly-jdbc. /P> p> Pructy-jdbc. Мое приложение для потока Ваадин 23, чтобы гарантировать, что срок действия ваадинессии истекает, как только истекает сеанс Spring-Session-JDBC, запуская сеанс по умолчанию «UI?


Подробнее здесь: https://stackoverflow.com/questions/797 ... on-expires
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка чтения входного потока при чтении потока WinSCP Session.GetFile из другого потока
    Anonymous » » в форуме C#
    0 Ответы
    68 Просмотры
    Последнее сообщение Anonymous
  • Spring Security с Spring Session не может правильно найти сеанс после перезапуска приложения
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Spring Security с Spring Session не может правильно найти сеанс после перезапуска приложения
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Сеанс не сохраняется между Spring Boot (Spring Session + MySQL) и интерфейсом Angular
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Session.remove() в спящем режиме не удаляет объект, но я не могу его «session.get()»
    Anonymous » » в форуме JAVA
    0 Ответы
    87 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»