diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java b/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java index 2afb3a25ee..ac070f6f71 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java @@ -131,7 +131,7 @@ public class WebHttpHandlerBuilder { /** - * Add the given filters to use for processing requests. + * Add the given filters. * @param filters the filters to add */ public WebHttpHandlerBuilder filters(List filters) { @@ -142,7 +142,17 @@ public class WebHttpHandlerBuilder { } /** - * Add the given exception handler to apply at the end of request processing. + * Insert the given filter before other configured filters. + * @param filter the filters to insert + */ + public WebHttpHandlerBuilder prependFilter(WebFilter filter) { + Assert.notNull(filter, "WebFilter is required"); + this.filters.add(0, filter); + return this; + } + + /** + * Add the given exception handlers. * @param handlers the exception handlers */ public WebHttpHandlerBuilder exceptionHandlers(List handlers) { @@ -152,6 +162,16 @@ public class WebHttpHandlerBuilder { return this; } + /** + * Insert the given exception handler before other configured handlers. + * @param handler the exception handler to insert + */ + public WebHttpHandlerBuilder prependExceptionHandler(WebExceptionHandler handler) { + Assert.notNull(handler, "WebExceptionHandler is required"); + this.exceptionHandlers.add(0, handler); + return this; + } + /** * Configure the {@link WebSessionManager} to set on the * {@link ServerWebExchange WebServerExchange}.