Defensive URL cleaning (preserving the original URL if possible)

Issue: SPR-17198
This commit is contained in:
Juergen Hoeller 2018-08-22 14:12:39 +02:00
parent c55a9072aa
commit 6ef0938a92
1 changed files with 10 additions and 8 deletions

View File

@ -141,18 +141,20 @@ public class UrlResource extends AbstractFileResolvingResource {
* Determine a cleaned URL for the given original URL.
* @param originalUrl the original URL
* @param originalPath the original URL path
* @return the cleaned URL
* @return the cleaned URL (possibly the original URL as-is)
* @see org.springframework.util.StringUtils#cleanPath
*/
private URL getCleanedUrl(URL originalUrl, String originalPath) {
try {
return new URL(StringUtils.cleanPath(originalPath));
}
catch (MalformedURLException ex) {
// Cleaned URL path cannot be converted to URL
// -> take original URL.
return originalUrl;
String cleanedPath = StringUtils.cleanPath(originalPath);
if (!cleanedPath.equals(originalPath)) {
try {
return new URL(cleanedPath);
}
catch (MalformedURLException ex) {
// Cleaned URL path cannot be converted to URL -> take original URL.
}
}
return originalUrl;
}
/**