public abstract class AbstractServerHttpRequest extends java.lang.Object implements ServerHttpRequest
ServerHttpRequest
implementations.ServerHttpRequest.Builder
Modifier and Type | Field and Description |
---|---|
private MultiValueMap<java.lang.String,HttpCookie> |
cookies |
private HttpHeaders |
headers |
private static Log |
logger |
private RequestPath |
path |
private static java.util.regex.Pattern |
QUERY_PATTERN |
private MultiValueMap<java.lang.String,java.lang.String> |
queryParams |
private SslInfo |
sslInfo |
private java.net.URI |
uri |
Constructor and Description |
---|
AbstractServerHttpRequest(java.net.URI uri,
java.lang.String contextPath,
HttpHeaders headers)
Constructor with the URI and headers for the request.
|
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
decodeQueryParam(java.lang.String value) |
MultiValueMap<java.lang.String,HttpCookie> |
getCookies()
Return a read-only map of cookies sent by the client.
|
HttpHeaders |
getHeaders()
Return the headers of this message.
|
abstract <T> T |
getNativeRequest()
Return the underlying server response.
|
RequestPath |
getPath()
Returns a structured representation of the request path including the
context path + path within application portions, path segments with
encoded and decoded values, and path parameters.
|
MultiValueMap<java.lang.String,java.lang.String> |
getQueryParams()
Return a read-only map with parsed and decoded query parameter values.
|
SslInfo |
getSslInfo()
Return the SSL session information if the request has been transmitted
over a secure protocol including SSL certificates, if available.
|
java.net.URI |
getURI()
Return the URI of the request.
|
protected abstract MultiValueMap<java.lang.String,HttpCookie> |
initCookies()
Obtain the cookies from the underlying "native" request and adapt those to
an
HttpCookie map. |
protected MultiValueMap<java.lang.String,java.lang.String> |
initQueryParams()
A method for parsing of the query into name-value pairs.
|
protected abstract SslInfo |
initSslInfo()
Obtain SSL session information from the underlying "native" request.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getRemoteAddress, mutate
getMethod, getMethodValue
getBody
private static final Log logger
private static final java.util.regex.Pattern QUERY_PATTERN
private final java.net.URI uri
private final RequestPath path
private final HttpHeaders headers
@Nullable private MultiValueMap<java.lang.String,java.lang.String> queryParams
@Nullable private MultiValueMap<java.lang.String,HttpCookie> cookies
public AbstractServerHttpRequest(java.net.URI uri, @Nullable java.lang.String contextPath, HttpHeaders headers)
uri
- the URI for the requestcontextPath
- the context path for the requestheaders
- the headers for the requestpublic java.net.URI getURI()
HttpRequest
getURI
in interface HttpRequest
null
)public RequestPath getPath()
ServerHttpRequest
getPath
in interface ServerHttpRequest
public HttpHeaders getHeaders()
HttpMessage
getHeaders
in interface HttpMessage
null
)public MultiValueMap<java.lang.String,java.lang.String> getQueryParams()
ServerHttpRequest
getQueryParams
in interface ServerHttpRequest
protected MultiValueMap<java.lang.String,java.lang.String> initQueryParams()
Note that this method is invoked lazily on first access to
getQueryParams()
. The invocation is not synchronized but the
parsing is thread-safe nevertheless.
private java.lang.String decodeQueryParam(java.lang.String value)
public MultiValueMap<java.lang.String,HttpCookie> getCookies()
ServerHttpRequest
getCookies
in interface ServerHttpRequest
protected abstract MultiValueMap<java.lang.String,HttpCookie> initCookies()
HttpCookie
map. The return value is turned into an immutable
map and cached.
Note that this method is invoked lazily on access to
getCookies()
. Sub-classes should synchronize cookie
initialization if the underlying "native" request does not provide
thread-safe access to cookie data.
@Nullable public SslInfo getSslInfo()
ServerHttpRequest
getSslInfo
in interface ServerHttpRequest
null
if none available@Nullable protected abstract SslInfo initSslInfo()
null
if none availablepublic abstract <T> T getNativeRequest()
Note: This is exposed mainly for internal framework use such as WebSocket upgrades in the spring-webflux module.