Есть ли способ для запроса не продолжать сеанс пользователя в Spring MVC? - PullRequest
0 голосов
/ 19 февраля 2019

Мне нужно сделать ajax-запрос к серверу, чтобы проверить, истек ли сеанс пользователя.Проблема в том, что этот запрос продолжит сеанс пользователя, если сеанс не истек.Как сказать Spring, чтобы не продолжать сессию для этого конкретного запроса?

1 Ответ

0 голосов
/ 19 февраля 2019

Одним из возможных способов истечения сеанса HTTP является истечение срока действия файла cookie JSESSIONID.Вы можете получить массив файлов cookie из метода getCookies () HttpServletRequest .Вы можете найти cookie с именем JSESSIONID из этого массива.Мы не можем удалить cookie, используя объект Cookie .Но мы можем истечь, установив максимальный возраст на ноль, т.е. cookie.setMaxAge (0).Вот возможная реализация, которую вы можете попробовать использовать:

public static void expireJSessionIdCookie(HttpServletRequest request) {
    Cookie[] cookies = request.getCookies();
    Optional<Cookie> cookieOpt = Stream.of(cookies)
            .filter(c -> c.getName().equalsIgnoreCase("JSESSIONID"))
            .findFirst();
    if (cookieOpt.isPresent()) {
        Cookie cookie = cookieOpt.get();
        cookie.setMaxAge(0);            
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...