Сделайте javax.servlet.http.HttpSession не тайм-аут на определенных страницах - PullRequest
0 голосов
/ 04 февраля 2011

Я выполняю рефакторинг приложения, которое выполняет собственное управление тайм-аутом сеанса.Я заметил, что HttpSession поддерживает установку значения тайм-аута.

Существует прослушиватель событий (я полагаю, HttpSessionListener), который перенаправляет на страницу «timeout».«Мы сожалеем, что ваш сеанс истек, вот ссылка на страницу входа».

Проблема в том, что когда я впервые захожу в приложение и сижу на странице входа, событие тайм-аута сеанса по-прежнемупожары.Так что я могу смотреть на страницу входа и быть перенаправленным на страницу времени ожидания.

Я хочу, чтобы на странице входа и только на странице входа тайм-аут сеанса непроисходят.Как мне это сделать?

Я уже пытался вызвать HttpSession.setMaxInactiveInterval(-1) с разрешением представления по умолчанию в ActionBean для входа в систему, но это не сработало.

Я считаю, что сеанс создается,но не обязательно аутентифицируется при доступе к любой странице.

1 Ответ

0 голосов
/ 04 февраля 2011

Где у вас происходит перенаправление?Если это что-то декларативно установлено где-то в файле конфигурации, вы можете удалить его и реализовать интерфейс HttpSessionListener.

В методе sessionDestroyed вы сделаете следующее:

  • Получить сеанс изsessionEvent
  • Если сеанс содержит флаг аутентификации, тогда перенаправление

U может также сохранить последнюю страницу, запрошенную пользователем, и использовать ее в качестве справочной информации, чтобы определить, следует ли перенаправлять или нет, ноЧто вы делаете, если пользователь уже прошел аутентификацию и заходит на страницу входа?Я не располагаю большой информацией о вашем приложении.

В любом случае, я думаю, HttpSessionListener - это путь.

...