public class ServletUriComponentsBuilder extends UriComponentsBuilder
Note: This class extracts and uses values from the headers
"Forwarded" (RFC 7239),
or "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" if
"Forwarded" is not found, in order to reflect the client-originated protocol
and address. As an alternative consider using the
ForwardedHeaderFilter
to have such
headers extracted once and removed, or removed only (without being used).
See the reference for further information including security considerations.
Modifier | Constructor and Description |
---|---|
protected |
ServletUriComponentsBuilder()
Default constructor.
|
protected |
ServletUriComponentsBuilder(ServletUriComponentsBuilder other)
Create a deep copy of the given ServletUriComponentsBuilder.
|
Modifier and Type | Method and Description |
---|---|
ServletUriComponentsBuilder |
cloneBuilder()
Clone this
UriComponentsBuilder . |
static ServletUriComponentsBuilder |
fromContextPath(HttpServletRequest request)
Prepare a builder from the host, port, scheme, and context path of the
given HttpServletRequest.
|
static ServletUriComponentsBuilder |
fromCurrentContextPath()
Same as
fromContextPath(HttpServletRequest) except the
request is obtained through RequestContextHolder . |
static ServletUriComponentsBuilder |
fromCurrentRequest()
Same as
fromRequest(HttpServletRequest) except the
request is obtained through RequestContextHolder . |
static ServletUriComponentsBuilder |
fromCurrentRequestUri()
Same as
fromRequestUri(HttpServletRequest) except the
request is obtained through RequestContextHolder . |
static ServletUriComponentsBuilder |
fromCurrentServletMapping()
Same as
fromServletMapping(HttpServletRequest) except the
request is obtained through RequestContextHolder . |
static ServletUriComponentsBuilder |
fromRequest(HttpServletRequest request)
Prepare a builder by copying the scheme, host, port, path, and
query string of an HttpServletRequest.
|
static ServletUriComponentsBuilder |
fromRequestUri(HttpServletRequest request)
Prepare a builder from the host, port, scheme, and path (but not the query)
of the HttpServletRequest.
|
static ServletUriComponentsBuilder |
fromServletMapping(HttpServletRequest request)
Prepare a builder from the host, port, scheme, context path, and
servlet mapping of the given HttpServletRequest.
|
protected static HttpServletRequest |
getCurrentRequest()
Obtain current request through
RequestContextHolder . |
String |
removePathExtension()
Remove any path extension from the
requestURI . |
build, build, build, build, buildAndExpand, buildAndExpand, clone, fragment, fromHttpRequest, fromHttpUrl, fromOriginHeader, fromPath, fromUri, fromUriString, host, newInstance, path, pathSegment, port, port, query, queryParam, queryParams, replacePath, replaceQuery, replaceQueryParam, replaceQueryParams, scheme, schemeSpecificPart, toUriString, uri, uriComponents, userInfo
protected ServletUriComponentsBuilder()
protected ServletUriComponentsBuilder(ServletUriComponentsBuilder other)
other
- the other builder to copy frompublic static ServletUriComponentsBuilder fromContextPath(HttpServletRequest request)
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromServletMapping(HttpServletRequest request)
If the servlet is mapped by name, e.g. "/main/*"
, the path
will end with "/main". If the servlet is mapped otherwise, e.g.
"/"
or "*.do"
, the result will be the same as
if calling fromContextPath(HttpServletRequest)
.
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromRequestUri(HttpServletRequest request)
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromRequest(HttpServletRequest request)
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromCurrentContextPath()
fromContextPath(HttpServletRequest)
except the
request is obtained through RequestContextHolder
.
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromCurrentServletMapping()
fromServletMapping(HttpServletRequest)
except the
request is obtained through RequestContextHolder
.
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromCurrentRequestUri()
fromRequestUri(HttpServletRequest)
except the
request is obtained through RequestContextHolder
.
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
public static ServletUriComponentsBuilder fromCurrentRequest()
fromRequest(HttpServletRequest)
except the
request is obtained through RequestContextHolder
.
Note: This method extracts values from "Forwarded" and "X-Forwarded-*" headers if found. See class-level docs.
protected static HttpServletRequest getCurrentRequest()
RequestContextHolder
.@Nullable public String removePathExtension()
requestURI
. This method must be invoked before any calls to UriComponentsBuilder.path(String)
or UriComponentsBuilder.pathSegment(String...)
.
GET http://foo.com/rest/books/6.json ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromRequestUri(this.request); String ext = builder.removePathExtension(); String uri = builder.path("/pages/1.{ext}").buildAndExpand(ext).toUriString(); assertEquals("http://foo.com/rest/books/6/pages/1.json", result);
null
public ServletUriComponentsBuilder cloneBuilder()
UriComponentsBuilder
UriComponentsBuilder
.cloneBuilder
in class UriComponentsBuilder
UriComponentsBuilder
object