Я хочу правильно установить заголовки Cache-Control и ETag в своих ответах. Для этого я отключил кеширование запросов через конфигурацию безопасности Spring:
httpSecurity.headers().cacheControl().disable();
Затем при возврате ответа:
ResponseEntity.ok()
.header("Cache-Control", "max-age=60")
.header("ETag", "my-tag")
.build()
Кажется, это работает в том смысле, что заголовки управления кешем безопасности spring по умолчанию не возвращаются (по умолчанию я думаю, что они возвращают «без кеша, без хранилища, max-age = 0, must-revalidate»), и мои заголовки присутствует в ответе. Однако там есть и кое-что еще:
Cache-Control: private
Expires: Thu, 01 Jan 1970 00:00:00 GMT
ETag: "0.42.1-20181213080300000"
Cache-Control: max-age=60
...other headers
Нижние заголовки кеша принадлежат мне, а верхние нежелательны. Кажется, они исходят от org.apache.catalina.authenticator.AuthenticatorBase
, который, кажется, является частью используемого встроенного Tomcat. Мне не удалось найти способ получить доступ и изменить конфигурацию этого конкретного класса.
Посоветуйте, пожалуйста, как избавиться от нежелательных заголовков.
Я использую Spring Boot 1.5.18.RELEASE