У нас есть приложение, использующее веб-сокеты с Spring на Tomcat 8.5
. Мы сталкиваемся с проблемами при использовании этой комбинации вещей
- Форсирование SSL-соединения в tomcat с использованием
<security-constraint>
в контексте.xml - Использование пружины 4.2.6 +
- просмотра в Safari.
Проблема, с которой мы столкнулись, заключается в следующем.
WebSocket - Safari 9 - Неверная последовательность UTF-8 в значении заголовка
По сути, Safari получает пустой заголовок Expires, отправленный ему.Причина, по которой он пуст, связана с SPR-14053, который ввел сброс заголовка Expires при настройке кэширования.
https://github.com/spring-projects/spring-framework/issues/18625
То, что происходит, заключается в том, что в Tomcat при использовании и без отключения ProxyCaching, Tomcat устанавливает и Expires Header
https://github.com/apache/tomcat/blob/8.5.x/java/org/apache/catalina/authenticator/AuthenticatorBase.java#L508
Я считаю,поскольку заголовок был ранее установлен Tomcat, вместо удаления заголовка Expire из ответа он просто устанавливается пустым, что вызывает проблемы в сафари.
Я знаю, что могу обойти это, мой вопрос: гдедолжен ли исправить эту ложь?Должно ли это быть подано в список ошибок Safari, Spring или Tomcat?