我想在我的回复中正确设置 Cache-Control 和 ETag 标头。为此,我通过 spring 安全配置禁用了请求缓存:
httpSecurity.headers().cacheControl().disable();
然后在返回响应时:
ResponseEntity.ok()
.header("Cache-Control", "max-age=60")
.header("ETag", "my-tag")
.build()
从某种意义上说,似乎没有返回默认的 spring 安全缓存控制标头(默认情况下,我认为它们返回“no-cache,no-store,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