From 722ab25f27ed096e04e0aedc93602d2e104c1de4 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Fri, 19 Nov 2021 12:37:00 +0100 Subject: [PATCH] Support empty file names in UriUtils::extractFileExtension Closes gh-27639 --- .../src/main/java/org/springframework/web/util/UriUtils.java | 2 +- .../test/java/org/springframework/web/util/UriUtilsTests.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-web/src/main/java/org/springframework/web/util/UriUtils.java b/spring-web/src/main/java/org/springframework/web/util/UriUtils.java index a67be402e5..d6653c24f1 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriUtils.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriUtils.java @@ -407,7 +407,7 @@ public abstract class UriUtils { int paramIndex = path.indexOf(';', begin); end = (paramIndex != -1 && paramIndex < end ? paramIndex : end); int extIndex = path.lastIndexOf('.', end); - if (extIndex != -1 && extIndex > begin) { + if (extIndex != -1 && extIndex >= begin) { return path.substring(extIndex + 1, end); } return null; diff --git a/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java b/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java index 019107a535..f9dae3a383 100644 --- a/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java @@ -133,6 +133,7 @@ public class UriUtilsTests { assertThat(UriUtils.extractFileExtension("/products;q=11/view.html?param=/path/a.do")).isEqualTo("html"); assertThat(UriUtils.extractFileExtension("/products;q=11/view.html;r=22?param=/path/a.do")).isEqualTo("html"); assertThat(UriUtils.extractFileExtension("/products;q=11/view.html;r=22;s=33?param=/path/a.do")).isEqualTo("html"); + assertThat(UriUtils.extractFileExtension("/products/.html")).isEqualTo("html"); } }