Ho implementato un server REST utilizzando Spring Boot 1.0.2. Ho difficoltà a impedire a Spring di impostare le intestazioni HTTP che disabilitano il caching HTTP.Come abilitare la cache di risposta HTTP in Spring Boot
mio controller è come segue:
@Controller
public class MyRestController {
@RequestMapping(value = "/someUrl", method = RequestMethod.GET)
public @ResponseBody ResponseEntity<String> myMethod(
HttpServletResponse httpResponse) throws SQLException {
return new ResponseEntity<String>("{}", HttpStatus.OK);
}
}
Tutte le risposte HTTP contengono le seguenti intestazioni:
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Pragma: no-cache
ho provato quanto segue per rimuovere o modificare tali intestazioni:
- Chiamare
setCacheSeconds(-1)
nel controller. - Chiamare
httpResponse.setHeader("Cache-Control", "max-age=123")
nel controller. - Definire
@Bean
che restituisceWebContentInterceptor
per il quale ho chiamatosetCacheSeconds(-1)
. - Impostare la proprietà
spring.resources.cache-period
su -1 o un valore positivo inapplication.properties
.
Nessuno dei precedenti ha avuto alcun effetto. Come disabilitare o modificare queste intestazioni per tutte o singole richieste in Spring Boot?
Non credo Primavera Boot lo fa (non in nessuno dei campioni che ho provato comunque). Forse puoi condividere un progetto minimale che ha queste intestazioni nelle risposte? –
Hai ragione. Il colpevole si rivelò essere Spring Security. –