From 84be0d85b41b7c3c3a73f267bf35f2dd12ed8740 Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Wed, 8 Jan 2025 10:52:28 +0100 Subject: [PATCH] Refine location checks for PathResource This commit ensures that checks for PathResource locations are skipped because this resource implementation will always resolve under the current location. Closes gh-34167 --- .../web/reactive/resource/ResourceHandlerUtils.java | 8 ++++++-- .../web/servlet/resource/ResourceHandlerUtils.java | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/ResourceHandlerUtils.java b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/ResourceHandlerUtils.java index ca1b2a2d60e..019ffa5a448 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/ResourceHandlerUtils.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/ResourceHandlerUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.PathResource; import org.springframework.core.io.Resource; import org.springframework.core.io.UrlResource; import org.springframework.core.log.LogFormatUtils; @@ -56,7 +57,10 @@ public abstract class ResourceHandlerUtils { Assert.notNull(location, "Resource location must not be null"); try { String path; - if (location instanceof UrlResource) { + if (location instanceof PathResource) { + return; + } + else if (location instanceof UrlResource) { path = location.getURL().toExternalForm(); } else if (location instanceof ClassPathResource classPathResource) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHandlerUtils.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHandlerUtils.java index 928b040d3b7..a2effd42569 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHandlerUtils.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHandlerUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.PathResource; import org.springframework.core.io.Resource; import org.springframework.core.io.UrlResource; import org.springframework.core.log.LogFormatUtils; @@ -57,7 +58,10 @@ public abstract class ResourceHandlerUtils { Assert.notNull(location, "Resource location must not be null"); try { String path; - if (location instanceof UrlResource) { + if (location instanceof PathResource) { + return; + } + else if (location instanceof UrlResource) { path = location.getURL().toExternalForm(); } else if (location instanceof ClassPathResource classPathResource) {