From c071f56653a10c5df64b3e41245c6aef06f92a52 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Thu, 10 Apr 2025 15:46:52 -0700 Subject: [PATCH] Protect against empty OS string in Docker `Image` Update `Image` to protect against `os` being `null` or and empty String. Fixes gh-45152 --- .../servlet/ManagementWebSecurityAutoConfigurationTests.java | 2 ++ .../boot/buildpack/platform/docker/type/Image.java | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/ManagementWebSecurityAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/ManagementWebSecurityAutoConfigurationTests.java index a891deac7b4..abf5b826441 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/ManagementWebSecurityAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/ManagementWebSecurityAutoConfigurationTests.java @@ -178,6 +178,7 @@ class ManagementWebSecurityAutoConfigurationTests { static class CustomSecurityConfiguration { @Bean + @SuppressWarnings("removal") SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests((requests) -> { requests.requestMatchers(new AntPathRequestMatcher("/foo")).permitAll(); @@ -207,6 +208,7 @@ class ManagementWebSecurityAutoConfigurationTests { @Bean @Order(SecurityProperties.BASIC_AUTH_ORDER - 1) + @SuppressWarnings("removal") SecurityFilterChain testRemoteDevToolsSecurityFilterChain(HttpSecurity http) throws Exception { http.securityMatcher(new AntPathRequestMatcher("/**")); http.authorizeHttpRequests((requests) -> requests.anyRequest().anonymous()); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type/Image.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type/Image.java index dd224c8dab7..ad4176a6127 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type/Image.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type/Image.java @@ -26,6 +26,7 @@ import java.util.List; import com.fasterxml.jackson.databind.JsonNode; import org.springframework.boot.buildpack.platform.json.MappedObject; +import org.springframework.util.StringUtils; /** * Image details as returned from {@code Docker inspect}. @@ -90,7 +91,7 @@ public class Image extends MappedObject { * @return the image OS */ public String getOs() { - return (this.os != null) ? this.os : "linux"; + return (!StringUtils.hasText(this.os)) ? this.os : "linux"; } /**