Существует некоторая проблема с кэшированием 302 в Firefox 66 и 67:
Некоторая последовательность 302 приводит к тому, что Firefox использует ранее кэшированное местоположение из 302 вместо уже доступного URL-адреса, поэтому его не следует перенаправлять,Это происходит, даже если в заголовке для всех 302. "Cache-Control: no-cache, no-store, max-age = 0, must-revalidate" используется:
Вариант использования:
- Пользователь очищает кэш Firefox.
- Пользователь вводит URL-адрес ресурса (изображения PNG), возникающего на каждой странице.
- Система (с использованием защиты CAS Apereo + Spring) отправляет ответ с кодом состояния 302 иРасположение страницы входа в CAS.
- Пользователь вводит другой URL, например, домашнюю страницу.Это приводит к тому, что пользователь не перенаправляется на ресурс, необходимый на втором этапе.Без кеширования работает нормально в Firefox, когда этот шаг пропущен.
- Система отправляет ответ с кодом состояния 302 и местоположением страницы входа в CAS (как в 3-м шаге).
- Пользователь входит в систему.
- Система отправляет ответ с кодом состояния 302 и местоположением билета CAS.Затем перенаправляет на URL-адрес, необходимый на 4-м шаге, снова используя код состояния 302.
- Система не работает нормально.Firefox использует кэшированные файлы (в том числе из URL-адресов, требуемых на 2-м и 4-м шагах), хотя он не должен кэшироваться .Например, он вызывает перенаправление на домашнюю страницу (URL с 4-го шага) вместо отображения необходимой страницы (доступ из меню).
Другие браузеры и более ранние версии Firefox ведут себя нормально, и перенаправление не происходит.Firefox 66 и 67 работают нормально, когда очищается его кэш.
Снимки экрана консоли Firefox:
Сетевой журнал 3-го шага:
5-я сетьжурнал:
6-й сетевой журнал:
7-й сетевой журнал: