Avoid repeated calls to getPathWithinApplication from getLookupPathForRequest
Closes gh-25669
This commit is contained in:
parent
3a73533b1c
commit
bcdc2503fa
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 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.
|
||||
|
|
@ -164,17 +164,18 @@ public class UrlPathHelper {
|
|||
* @see #getPathWithinApplication
|
||||
*/
|
||||
public String getLookupPathForRequest(HttpServletRequest request) {
|
||||
String pathWithinApp = getPathWithinApplication(request);
|
||||
// Always use full path within current servlet context?
|
||||
if (this.alwaysUseFullPath) {
|
||||
return getPathWithinApplication(request);
|
||||
return pathWithinApp;
|
||||
}
|
||||
// Else, use path within current servlet mapping if applicable
|
||||
String rest = getPathWithinServletMapping(request);
|
||||
String rest = getPathWithinServletMapping(request, pathWithinApp);
|
||||
if (StringUtils.hasLength(rest)) {
|
||||
return rest;
|
||||
}
|
||||
else {
|
||||
return getPathWithinApplication(request);
|
||||
return pathWithinApp;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -198,6 +199,18 @@ public class UrlPathHelper {
|
|||
return getLookupPathForRequest(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the path within the servlet mapping for the given request,
|
||||
* i.e. the part of the request's URL beyond the part that called the servlet,
|
||||
* or "" if the whole URL has been used to identify the servlet.
|
||||
* @param request current HTTP request
|
||||
* @return the path within the servlet mapping, or ""
|
||||
* @see #getPathWithinServletMapping(HttpServletRequest, String)
|
||||
*/
|
||||
public String getPathWithinServletMapping(HttpServletRequest request) {
|
||||
return getPathWithinServletMapping(request, getPathWithinApplication(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the path within the servlet mapping for the given request,
|
||||
* i.e. the part of the request's URL beyond the part that called the servlet,
|
||||
|
|
@ -209,11 +222,12 @@ public class UrlPathHelper {
|
|||
* <p>E.g.: servlet mapping = "/test"; request URI = "/test" -> "".
|
||||
* <p>E.g.: servlet mapping = "/*.test"; request URI = "/a.test" -> "".
|
||||
* @param request current HTTP request
|
||||
* @param pathWithinApp a precomputed path within the application
|
||||
* @return the path within the servlet mapping, or ""
|
||||
* @since 5.2.9
|
||||
* @see #getLookupPathForRequest
|
||||
*/
|
||||
public String getPathWithinServletMapping(HttpServletRequest request) {
|
||||
String pathWithinApp = getPathWithinApplication(request);
|
||||
protected String getPathWithinServletMapping(HttpServletRequest request, String pathWithinApp) {
|
||||
String servletPath = getServletPath(request);
|
||||
String sanitizedPathWithinApp = getSanitizedPath(pathWithinApp);
|
||||
String path;
|
||||
|
|
|
|||
Loading…
Reference in New Issue