diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ResourceProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ResourceProperties.java index ade901404b54..8f27f33f5f3b 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ResourceProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ResourceProperties.java @@ -476,6 +476,10 @@ public CacheControl toHttpCacheControl() { .staleIfError(duration.getSeconds(), TimeUnit.SECONDS)); map.from(this::getSMaxAge).whenNonNull().to((duration) -> control .sMaxAge(duration.getSeconds(), TimeUnit.SECONDS)); + // check if cacheControl remained untouched + if (control.getHeaderValue() == null) { + return null; + } return control; } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ResourcePropertiesTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ResourcePropertiesTests.java index 9ec932a9f4d0..292dd7480e29 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ResourcePropertiesTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ResourcePropertiesTests.java @@ -76,7 +76,7 @@ public void customStaticLocationsAreNormalizedToEndWithTrailingSlash() { public void emptyCacheControl() { CacheControl cacheControl = this.properties.getCache().getCachecontrol() .toHttpCacheControl(); - assertThat(cacheControl.getHeaderValue()).isNull(); + assertThat(cacheControl).isNull(); } @Test diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfigurationTests.java index 7a346ad1e9c6..294fede283ab 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfigurationTests.java @@ -803,13 +803,12 @@ private void assertCachePeriod(AssertableWebApplicationContext context) { Map handlerMap = getHandlerMap( context.getBean("resourceHandlerMapping", HandlerMapping.class)); assertThat(handlerMap).hasSize(2); - for (Object handler : handlerMap.keySet()) { + for (Object handler : handlerMap.values()) { if (handler instanceof ResourceHttpRequestHandler) { assertThat(((ResourceHttpRequestHandler) handler).getCacheSeconds()) - .isEqualTo(-1); + .isEqualTo(5); assertThat(((ResourceHttpRequestHandler) handler).getCacheControl()) - .isEqualToComparingFieldByField( - CacheControl.maxAge(5, TimeUnit.SECONDS)); + .isNull(); } } }