Class DefaultServerWebExchange
java.lang.Object
org.springframework.web.server.adapter.DefaultServerWebExchange
- All Implemented Interfaces:
ServerWebExchange
- Direct Known Subclasses:
MockServerWebExchange
Default implementation of
ServerWebExchange
.- Since:
- 5.0
- Author:
- Rossen Stoyanchev, Brian Clozel
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.web.server.ServerWebExchange
ServerWebExchange.Builder
-
Field Summary
Fields inherited from interface org.springframework.web.server.ServerWebExchange
LOG_ID_ATTRIBUTE
-
Constructor Summary
ConstructorDescriptionDefaultServerWebExchange
(ServerHttpRequest request, ServerHttpResponse response, WebSessionManager sessionManager, ServerCodecConfigurer codecConfigurer, LocaleContextResolver localeContextResolver) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addUrlTransformer
(Function<String, String> transformer) Register an additional URL transformation function for use withServerWebExchange.transformUrl(java.lang.String)
.boolean
checkNotModified
(String etag) An overloaded variant ofServerWebExchange.checkNotModified(String, Instant)
with anETag
(entity tag) value only.boolean
checkNotModified
(String eTag, Instant lastModified) Check whether the requested resource has been modified given the suppliedETag
(entity tag) and last-modified timestamp as determined by the application.boolean
checkNotModified
(Instant lastModified) An overloaded variant ofServerWebExchange.checkNotModified(String, Instant)
with a last-modified timestamp only.reactor.core.publisher.Mono<Void>
Cleans up any storage used for multipart handling.Return theApplicationContext
associated with the web application, if it was initialized with one viaWebHttpHandlerBuilder.applicationContext(ApplicationContext)
.Return a mutable map of request attributes for the current exchange.reactor.core.publisher.Mono<MultiValueMap<String,
String>> Return the form data from the body of the request if the Content-Type is"application/x-www-form-urlencoded"
or an empty map otherwise.Return theLocaleContext
using the configuredLocaleContextResolver
.Return a log message prefix to use to correlate messages for this exchange.reactor.core.publisher.Mono<MultiValueMap<String,
Part>> Return the parts of a multipart request if the Content-Type is"multipart/form-data"
or an empty map otherwise.<T extends Principal>
reactor.core.publisher.Mono<T>Return the authenticated user for the request, if any.Return the current HTTP request.Return the current HTTP response.reactor.core.publisher.Mono<WebSession>
Return the web session for the current request.boolean
Returnstrue
if the one of thecheckNotModified
methods in this contract were used and they returned true.transformUrl
(String url) Transform the given url according to the registered transformation function(s).Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.web.server.ServerWebExchange
getAttribute, getAttributeOrDefault, getRequiredAttribute, mutate
-
Constructor Details
-
DefaultServerWebExchange
public DefaultServerWebExchange(ServerHttpRequest request, ServerHttpResponse response, WebSessionManager sessionManager, ServerCodecConfigurer codecConfigurer, LocaleContextResolver localeContextResolver)
-
-
Method Details
-
getRequest
Description copied from interface:ServerWebExchange
Return the current HTTP request.- Specified by:
getRequest
in interfaceServerWebExchange
-
getResponse
Description copied from interface:ServerWebExchange
Return the current HTTP response.- Specified by:
getResponse
in interfaceServerWebExchange
-
getAttributes
Description copied from interface:ServerWebExchange
Return a mutable map of request attributes for the current exchange.- Specified by:
getAttributes
in interfaceServerWebExchange
-
getSession
Description copied from interface:ServerWebExchange
Return the web session for the current request. Always guaranteed to return an instance either matching to the session id requested by the client, or with a new session id either because the client did not specify one or because the underlying session had expired. Use of this method does not automatically create a session. SeeWebSession
for more details.- Specified by:
getSession
in interfaceServerWebExchange
-
getPrincipal
Description copied from interface:ServerWebExchange
Return the authenticated user for the request, if any.- Specified by:
getPrincipal
in interfaceServerWebExchange
-
getFormData
Description copied from interface:ServerWebExchange
Return the form data from the body of the request if the Content-Type is"application/x-www-form-urlencoded"
or an empty map otherwise.Note: calling this method causes the request body to be read and parsed in full and the resulting
MultiValueMap
is cached so that this method is safe to call more than once.- Specified by:
getFormData
in interfaceServerWebExchange
-
getMultipartData
Description copied from interface:ServerWebExchange
Return the parts of a multipart request if the Content-Type is"multipart/form-data"
or an empty map otherwise.Note: calling this method causes the request body to be read and parsed in full and the resulting
MultiValueMap
is cached so that this method is safe to call more than once.Note:the contents of each part is not cached, and can only be read once.
- Specified by:
getMultipartData
in interfaceServerWebExchange
-
cleanupMultipart
Description copied from interface:ServerWebExchange
Cleans up any storage used for multipart handling.- Specified by:
cleanupMultipart
in interfaceServerWebExchange
- See Also:
-
getLocaleContext
Description copied from interface:ServerWebExchange
Return theLocaleContext
using the configuredLocaleContextResolver
.- Specified by:
getLocaleContext
in interfaceServerWebExchange
-
getApplicationContext
Description copied from interface:ServerWebExchange
Return theApplicationContext
associated with the web application, if it was initialized with one viaWebHttpHandlerBuilder.applicationContext(ApplicationContext)
.- Specified by:
getApplicationContext
in interfaceServerWebExchange
- See Also:
-
isNotModified
public boolean isNotModified()Description copied from interface:ServerWebExchange
Returnstrue
if the one of thecheckNotModified
methods in this contract were used and they returned true.- Specified by:
isNotModified
in interfaceServerWebExchange
-
checkNotModified
Description copied from interface:ServerWebExchange
An overloaded variant ofServerWebExchange.checkNotModified(String, Instant)
with a last-modified timestamp only.- Specified by:
checkNotModified
in interfaceServerWebExchange
- Parameters:
lastModified
- the last-modified time- Returns:
- whether the request qualifies as not modified
-
checkNotModified
Description copied from interface:ServerWebExchange
An overloaded variant ofServerWebExchange.checkNotModified(String, Instant)
with anETag
(entity tag) value only.- Specified by:
checkNotModified
in interfaceServerWebExchange
- Parameters:
etag
- the entity tag for the underlying resource.- Returns:
- true if the request does not require further processing.
-
checkNotModified
Description copied from interface:ServerWebExchange
Check whether the requested resource has been modified given the suppliedETag
(entity tag) and last-modified timestamp as determined by the application. Also transparently prepares the response, setting HTTP status, and adding "ETag" and "Last-Modified" headers when applicable. This method works with conditional GET/HEAD requests as well as with conditional POST/PUT/DELETE requests.Note: The HTTP specification recommends setting both ETag and Last-Modified values, but you can also use
#checkNotModified(String)
orServerWebExchange.checkNotModified(Instant)
.- Specified by:
checkNotModified
in interfaceServerWebExchange
- Parameters:
eTag
- the entity tag that the application determined for the underlying resource. This parameter will be padded with quotes (") if necessary.lastModified
- the last-modified timestamp that the application determined for the underlying resource- Returns:
- true if the request does not require further processing.
-
transformUrl
Description copied from interface:ServerWebExchange
Transform the given url according to the registered transformation function(s). By default, this method returns the givenurl
, though additional transformation functions can be registered withServerWebExchange.addUrlTransformer(java.util.function.Function<java.lang.String, java.lang.String>)
- Specified by:
transformUrl
in interfaceServerWebExchange
- Parameters:
url
- the URL to transform- Returns:
- the transformed URL
-
addUrlTransformer
Description copied from interface:ServerWebExchange
Register an additional URL transformation function for use withServerWebExchange.transformUrl(java.lang.String)
. The given function can be used to insert an id for authentication, a nonce for CSRF protection, etc.Note that the given function is applied after any previously registered functions.
- Specified by:
addUrlTransformer
in interfaceServerWebExchange
- Parameters:
transformer
- a URL transformation function to add
-
getLogPrefix
Description copied from interface:ServerWebExchange
Return a log message prefix to use to correlate messages for this exchange. The prefix is based on the value of the attributeServerWebExchange.LOG_ID_ATTRIBUTE
along with some extra formatting so that the prefix can be conveniently prepended with no further formatting no separators required.- Specified by:
getLogPrefix
in interfaceServerWebExchange
- Returns:
- the log message prefix or an empty String if the
ServerWebExchange.LOG_ID_ATTRIBUTE
is not set.
-