Merge pull request #914 from bclozel

* pr/914:
  Prevent caching issues with browsers

Closes gh-914
This commit is contained in:
Stephane Nicoll
2019-06-02 09:10:24 +02:00
2 changed files with 7 additions and 10 deletions

View File

@@ -113,11 +113,6 @@ public class MainController extends AbstractInitializrController {
return this.metadataProvider.get();
}
@RequestMapping("/metadata/client")
public String client() {
return "redirect:/";
}
@RequestMapping(path = "/", produces = "text/plain")
public ResponseEntity<String> serviceCapabilitiesText(
@RequestHeader(value = HttpHeaders.USER_AGENT,
@@ -152,19 +147,20 @@ public class MainController extends AbstractInitializrController {
return builder.eTag(createUniqueId(content)).body(content);
}
@RequestMapping(path = "/", produces = "application/hal+json")
@RequestMapping(path = { "/", "/metadata/client" }, produces = "application/hal+json")
public ResponseEntity<String> serviceCapabilitiesHal() {
return serviceCapabilitiesFor(InitializrMetadataVersion.V2_1,
HAL_JSON_CONTENT_TYPE);
}
@RequestMapping(path = "/",
@RequestMapping(path = { "/", "/metadata/client" },
produces = { "application/vnd.initializr.v2.1+json", "application/json" })
public ResponseEntity<String> serviceCapabilitiesV21() {
return serviceCapabilitiesFor(InitializrMetadataVersion.V2_1);
}
@RequestMapping(path = "/", produces = "application/vnd.initializr.v2+json")
@RequestMapping(path = { "/", "/metadata/client" },
produces = "application/vnd.initializr.v2+json")
public ResponseEntity<String> serviceCapabilitiesV2() {
return serviceCapabilitiesFor(InitializrMetadataVersion.V2);
}
@@ -180,7 +176,8 @@ public class MainController extends AbstractInitializrController {
String content = getJsonMapper(version).write(this.metadataProvider.get(),
appUrl);
return ResponseEntity.ok().contentType(contentType).eTag(createUniqueId(content))
.cacheControl(CacheControl.maxAge(7, TimeUnit.DAYS)).body(content);
.varyBy("Accept").cacheControl(CacheControl.maxAge(7, TimeUnit.DAYS))
.body(content);
}
private static InitializrMetadataJsonMapper getJsonMapper(

View File

@@ -88,7 +88,7 @@ class MainControllerServiceMetadataIntegrationTests
}
@Test
void metadataClientRedirect() {
void metadataClientEndpoint() {
ResponseEntity<String> response = execute("/metadata/client", String.class, null,
"application/json");
validateCurrentMetadata(response);