Class ResourceHandlerUtils
java.lang.Object
org.springframework.web.servlet.resource.ResourceHandlerUtils
Resource handling utility methods to share common logic between
ResourceHttpRequestHandler
and org.springframework.web.servlet.function
.- Since:
- 6.2
- Author:
- Rossen Stoyanchev
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
assertLocationPath
(String path) Assert the given location path is a directory and ends on slash.static void
assertResourceLocation
(Resource location) Assert the given location is not null, and its path ends on slash.static boolean
isInvalidPath
(String path) Checks for invalid resource input paths rejecting the following: Paths that contain "WEB-INF" or "META-INF" Paths that contain "../" after a call toStringUtils.cleanPath(java.lang.String)
.static boolean
isResourceUnderLocation
(Resource location, Resource resource) Check whether the resource is under the given location.static String
normalizeInputPath
(String path) Normalize the given resource path replacing the following: Backslash with forward slash.static boolean
shouldIgnoreInputPath
(String path) Whether the given input path is invalid as determined byisInvalidPath(String)
.
-
Constructor Details
-
ResourceHandlerUtils
public ResourceHandlerUtils()
-
-
Method Details
-
assertResourceLocation
Assert the given location is not null, and its path ends on slash. -
assertLocationPath
Assert the given location path is a directory and ends on slash. -
normalizeInputPath
Normalize the given resource path replacing the following:- Backslash with forward slash.
- Duplicate occurrences of slash with a single slash.
- Any combination of leading slash and control characters (00-1F and 7F)
with a single "/" or "". For example
" / // foo/bar"
becomes"/foo/bar"
.
-
shouldIgnoreInputPath
Whether the given input path is invalid as determined byisInvalidPath(String)
. The path is also decoded and the same checks are performed again. -
isInvalidPath
Checks for invalid resource input paths rejecting the following:- Paths that contain "WEB-INF" or "META-INF"
- Paths that contain "../" after a call to
StringUtils.cleanPath(java.lang.String)
. - Paths that represent a
valid URL
or would represent one after the leading slash is removed.
Note: this method assumes that leading, duplicate '/' or control characters (e.g. white space) have been trimmed so that the path starts predictably with a single '/' or does not have one.
- Parameters:
path
- the path to validate- Returns:
true
if the path is invalid,false
otherwise
-
isResourceUnderLocation
public static boolean isResourceUnderLocation(Resource location, Resource resource) throws IOException Check whether the resource is under the given location.- Throws:
IOException
-