diff --git a/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java b/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java index 46b145e7b2..fe03d7ea14 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java +++ b/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java @@ -676,7 +676,8 @@ public class CorsConfiguration { } boolean allowAnyHeader = this.allowedHeaders.contains(ALL); - List result = new ArrayList<>(requestHeaders.size()); + int maxResultSize = allowAnyHeader ? requestHeaders.size() : Math.min(requestHeaders.size(), this.allowedHeaders.size()); + List result = new ArrayList<>(maxResultSize); for (String requestHeader : requestHeaders) { if (StringUtils.hasText(requestHeader)) { requestHeader = requestHeader.trim();