Cookie getMaxAge - PullRequest
       14

Cookie getMaxAge

11 голосов
/ 07 октября 2008

Я не могу получить cookie-файл, он всегда возвращает -1

Создание куки:

Cookie securityCookie = new Cookie("sec", "somevalue");
securityCookie.setMaxAge(EXPIRATION_TIME);

Получить печенье:

Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for(int i=0; i<cookies.length; i++) {
        Cookie cookie = cookies[i];
        if ("sec".equals(cookie.getName())){
            int age = cookie.getMaxAge();
        }
    }
}

я всегда получаю возраст = -1

также, когда я проверяю срок действия куки Firefox, я вижу странную дату.

Thx

Ответы [ 4 ]

12 голосов
/ 09 октября 2008

Когда браузер отправляет cookie обратно на исходный сервер, он не включает возраст. Таким образом, логично, что ваш приведенный выше код «извлечения» не получает максимальный возраст: он не включен в запрос.

Когда файл cookie получен с сервера, браузер использует параметр максимального возраста, чтобы определить, как долго должен храниться файл cookie; возраст никогда не передается обратно на сервер, просроченный файл cookie просто отбрасывается. Если при обработке запроса вы хотите продлить срок действия файла cookie, включите его в ответ.

Также см. Раздел «Отправка файлов cookie на сервер Origin» в RFC .

1 голос
/ 07 октября 2008

API говорит, что -1 означает, что браузер работает:

Возвращает максимальный возраст файла cookie, указанный в секундах. По умолчанию -1 указывает, что файл cookie будет сохраняться до закрытия браузера

Каково значение константы EXPIRATION_TIME?

0 голосов
/ 07 октября 2008

Только для ухмылки, можете ли вы извлечь значение куки из браузера, используя javascript?

Кроме того, можете ли вы установить фильтр перед вашим сервлетом / jsp, чтобы вы могли проверить значение cookie после того, как сервлет / jsp установит его?

0 голосов
/ 07 октября 2008

Значение может быть изменено браузером.

Вы создаете куки и хотите установить максимальный возраст. Файл cookie отправляется в браузер. Браузер может отклонить файл cookie или игнорировать максимальный возраст, слишком большой для его политики Этот измененный файл cookie отправляется обратно в ваше приложение.

Проверьте настройки вашего браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...