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 SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic voidassertResourceLocation(@Nullable Resource location) Assert the given location is not null, and its path ends on slash.static StringinitLocationPath(String path) Check if the given static resource location path ends with a trailing slash, and append it if necessary.static booleanisInvalidPath(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(String).static booleanisResourceUnderLocation(Resource location, Resource resource) Check whether the resource is under the given location.static StringnormalizeInputPath(String path) Normalize the given resource path replacing the following: Backslash with forward slash.static booleanshouldIgnoreInputPath(String path) Whether the given input path is invalid as determined byisInvalidPath(String).
- 
Constructor Details- 
ResourceHandlerUtilspublic ResourceHandlerUtils()
 
- 
- 
Method Details- 
assertResourceLocation
- 
initLocationPath
- 
normalizeInputPathNormalize 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".
 
- 
shouldIgnoreInputPathWhether the given input path is invalid as determined byisInvalidPath(String). The path is also decoded and the same checks are performed again.
- 
isInvalidPathChecks 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(String).
- Paths that represent a valid URLor 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:
- trueif the path is invalid,- falseotherwise
 
- 
isResourceUnderLocationpublic static boolean isResourceUnderLocation(Resource location, Resource resource) throws IOException Check whether the resource is under the given location.- Throws:
- IOException
 
 
-