From 4dbe9d6709f7127261986cac545f59c99d640007 Mon Sep 17 00:00:00 2001 From: Baljit Singh Date: Wed, 14 Dec 2022 23:08:42 -0500 Subject: [PATCH] Use ContextView in ServerWebExchangeContextFilter --- .../ServerWebExchangeContextFilter.java | 19 +++++++++++++++++-- .../ServerWebExchangeContextFilterTests.java | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/web/filter/reactive/ServerWebExchangeContextFilter.java b/spring-web/src/main/java/org/springframework/web/filter/reactive/ServerWebExchangeContextFilter.java index 8d47f89efe..08e42e27e3 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/reactive/ServerWebExchangeContextFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/reactive/ServerWebExchangeContextFilter.java @@ -20,6 +20,7 @@ import java.util.Optional; import reactor.core.publisher.Mono; import reactor.util.context.Context; +import reactor.util.context.ContextView; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilter; @@ -32,7 +33,7 @@ import org.springframework.web.server.WebFilterChain; * exchange without explicitly passing it to components that participate in * request processing. * - *

The convenience method {@link #get(Context)} looks up the exchange. + *

The convenience method {@link #getExchange(ContextView)} looks up the exchange. * * @author Rossen Stoyanchev * @since 5.2 @@ -58,8 +59,22 @@ public class ServerWebExchangeContextFilter implements WebFilter { * @param context the context in which to access the exchange * @return the exchange */ - public static Optional get(Context context) { + public static Optional getExchange(ContextView context) { return context.getOrEmpty(EXCHANGE_CONTEXT_ATTRIBUTE); } + + /** + * Access the {@link ServerWebExchange} from the Reactor Context, if available, + * which is if {@link ServerWebExchangeContextFilter} is configured for use + * and the give context was obtained from a request processing chain. + * @param context the context in which to access the exchange + * @return the exchange + * @deprecated use {@link #getExchange(ContextView)} + */ + @Deprecated(since = "6.0.6") + public static Optional get(Context context) { + return getExchange(context); + } + } diff --git a/spring-web/src/test/java/org/springframework/web/filter/reactive/ServerWebExchangeContextFilterTests.java b/spring-web/src/test/java/org/springframework/web/filter/reactive/ServerWebExchangeContextFilterTests.java index 169f2efe48..25f0edd7a4 100644 --- a/spring-web/src/test/java/org/springframework/web/filter/reactive/ServerWebExchangeContextFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/filter/reactive/ServerWebExchangeContextFilterTests.java @@ -63,7 +63,7 @@ class ServerWebExchangeContextFilterTests { public Mono service() { return Mono.just("result").contextWrite(context -> { - ServerWebExchangeContextFilter.get(context).ifPresent(exchangeRef::set); + ServerWebExchangeContextFilter.getExchange(context).ifPresent(exchangeRef::set); return context; }); }