Defensive URL cleaning (preserving the original URL if possible)
Issue: SPR-17198
This commit is contained in:
parent
c55a9072aa
commit
6ef0938a92
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue