From 2270df515b040d8612c691acc0102d1a224bcd82 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 15 May 2024 14:15:47 +0200 Subject: [PATCH] Enforce cleaned URL for root resource from ClassLoader Closes gh-32828 --- .../support/PathMatchingResourcePatternResolver.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java index 802564e3b6..3bbaa35651 100644 --- a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java +++ b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java @@ -423,6 +423,17 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol } } else { + String urlString = url.toString(); + String cleanedPath = StringUtils.cleanPath(urlString); + if (!cleanedPath.equals(urlString)) { + // Prefer cleaned URL, aligned with UrlResource#createRelative(String) + try { + return new UrlResource(ResourceUtils.toURI(cleanedPath)); + } + catch (URISyntaxException | MalformedURLException ex) { + // Fallback to regular URL construction below... + } + } return new UrlResource(url); } }