Тайм-аут сеанса сервлета - PullRequest
3 голосов
/ 08 ноября 2010

Я пишу свое веб-приложение SPring MVC.

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

sessionService.setcurrentUser(myuser);
      HttpSession session = request.getSession();
      Cookie cookie = new Cookie("JSESSIONID", session.getId());
      cookie.setMaxAge(timeout);
      response.addCookie(cookie);

Должен ли максимальный возраст моих файлов cookie соответствовать времени ожидания сеанса?

cookie.setMaxAge(10080);

Это хорошая практика?

Ответы [ 3 ]

7 голосов
/ 08 ноября 2010

Вы должны настроить его на web.xml, а не взламывать файл cookie сеанса по умолчанию.

<session-config>
    <session-timeout>10080</session-timeout>
</session-config>

Обратите внимание, что вы не должны хранить слишком много данных в сеансе и / или что на вашем сервере достаточно памяти.

2 голосов
/ 08 ноября 2010

Следующие посты содержат интересную информацию.
Что касается хорошей практики, вам, вероятно, нужно учесть две вещи:

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

Дискуссия 1
Дискуссия 2
Дискуссия 3

1 голос
/ 08 ноября 2010

Вы используете куки для ссылки на ваш идентификатор сессии. Если тайм-аут файла cookie меньше, чем сеанс, он больше не найдет ваш сеанс. Поэтому рекомендуется установить тайм-аут вашего куки-файла как минимум на тайм-аут вашего сеанса.

...