diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/HttpHandlerAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/HttpHandlerAutoConfiguration.java index 3f55e5b899..43dc1a73b0 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/HttpHandlerAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/HttpHandlerAutoConfiguration.java @@ -38,7 +38,7 @@ import org.springframework.web.reactive.function.server.RouterFunction; import org.springframework.web.reactive.function.server.RouterFunctions; import org.springframework.web.reactive.result.view.ViewResolver; import org.springframework.web.server.WebFilter; -import org.springframework.web.server.WebHandler; +import org.springframework.web.server.adapter.HttpWebHandlerAdapter; import org.springframework.web.server.adapter.WebHttpHandlerBuilder; import org.springframework.web.server.session.WebSessionManager; @@ -108,15 +108,19 @@ public class HttpHandlerAutoConfiguration { if (this.handlerStrategiesBuilder == null) { this.handlerStrategiesBuilder = HandlerStrategies.builder(); } + if (this.webFilters != null) { + this.webFilters.forEach(this.handlerStrategiesBuilder::webFilter); + } if (this.viewResolvers != null) { this.viewResolvers.forEach(this.handlerStrategiesBuilder::viewResolver); } - WebHandler webHandler = RouterFunctions.toHttpHandler(routerFunction, + HttpHandler httpHandler = RouterFunctions.toHttpHandler(routerFunction, this.handlerStrategiesBuilder.build()); - WebHttpHandlerBuilder builder = WebHttpHandlerBuilder.webHandler(webHandler) - .sessionManager(this.webSessionManager); - builder.filters(this.webFilters); - return builder.build(); + if (this.webSessionManager != null) { + ((HttpWebHandlerAdapter) httpHandler) + .setSessionManager(this.webSessionManager); + } + return httpHandler; } }