@Override public void beforeServerCreated(WebHttpHandlerBuilder builder) { builder.filters(filters -> filters.add(0, this.filter)); }
@Override public void afterConfigurerAdded(WebTestClient.Builder builder, @Nullable WebHttpHandlerBuilder httpHandlerBuilder, @Nullable ClientHttpConnector connector) { Assert.notNull(httpHandlerBuilder, "Not a mock server"); httpHandlerBuilder.filters(filters -> { filters.removeIf(filter -> filter instanceof IdentityFilter); filters.add(0, this.filter); }); } }
@Override public WebTestClient.Builder configureClient() { WebHttpHandlerBuilder builder = initHttpHandlerBuilder(); if (!CollectionUtils.isEmpty(this.filters)) { builder.filters(theFilters -> theFilters.addAll(0, this.filters)); } if (!builder.hasSessionManager() && this.sessionManager != null) { builder.sessionManager(this.sessionManager); } if (!CollectionUtils.isEmpty(this.configurers)) { this.configurers.forEach(configurer -> configurer.beforeServerCreated(builder)); } return new DefaultWebTestClientBuilder(builder); }
@Override public void beforeServerCreated(WebHttpHandlerBuilder builder) { builder.filters(filters -> { filters.add(0, new TestWebFilter("Fwk-A")); filters.add(1, new TestWebFilter("Fwk-B")); }); } });
@Override protected WebHttpHandlerBuilder initHttpHandlerBuilder() { WebHandler webHandler = RouterFunctions.toWebHandler(this.routerFunction, this.handlerStrategies); return WebHttpHandlerBuilder.webHandler(webHandler) .filters(filters -> filters.addAll(this.handlerStrategies.webFilters())) .exceptionHandlers(handlers -> handlers.addAll(this.handlerStrategies.exceptionHandlers())) .localeContextResolver(this.handlerStrategies.localeContextResolver()); }
.orderedStream() .collect(Collectors.toList()); builder.filters(filters -> filters.addAll(webFilters)); List<WebExceptionHandler> exceptionHandlers = context .getBeanProvider(WebExceptionHandler.class)
/** * Convert the given {@linkplain RouterFunction router function} into a {@link HttpHandler}, * using the given strategies. * <p>The returned {@code HttpHandler} can be adapted to run in * <ul> * <li>Servlet 3.1+ using the * {@link org.springframework.http.server.reactive.ServletHttpHandlerAdapter},</li> * <li>Reactor using the * {@link org.springframework.http.server.reactive.ReactorHttpHandlerAdapter},</li> * <li>Undertow using the * {@link org.springframework.http.server.reactive.UndertowHttpHandlerAdapter}.</li> * </ul> * @param routerFunction the router function to convert * @param strategies the strategies to use * @return an http handler that handles HTTP request using the given router function */ public static HttpHandler toHttpHandler(RouterFunction<?> routerFunction, HandlerStrategies strategies) { WebHandler webHandler = toWebHandler(routerFunction, strategies); return WebHttpHandlerBuilder.webHandler(webHandler) .filters(filters -> filters.addAll(strategies.webFilters())) .exceptionHandlers(handlers -> handlers.addAll(strategies.exceptionHandlers())) .localeContextResolver(strategies.localeContextResolver()) .build(); }
.orderedStream() .collect(Collectors.toList()); builder.filters(filters -> filters.addAll(webFilters)); List<WebExceptionHandler> exceptionHandlers = context .getBeanProvider(WebExceptionHandler.class)
@Test public void forwardedHeaderFilter() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.register(ForwardedHeaderFilterConfig.class); context.refresh(); WebHttpHandlerBuilder builder = WebHttpHandlerBuilder.applicationContext(context); builder.filters(filters -> assertEquals(Collections.emptyList(), filters)); assertTrue(builder.hasForwardedHeaderTransformer()); }
public void beforeServerCreated(WebHttpHandlerBuilder builder) { builder.filters( filters -> { filters.add(0, new MutatorFilter()); }); } };
@Override public void beforeServerCreated(WebHttpHandlerBuilder builder) { builder.filters(addSetupMutatorFilter()); }
public void beforeServerCreated(WebHttpHandlerBuilder builder) { builder.filters( filters -> { filters.add(0, new MutatorFilter()); }); } };
@Override public void afterConfigurerAdded(WebTestClient.Builder builder, @Nullable WebHttpHandlerBuilder webHttpHandlerBuilder, @Nullable ClientHttpConnector clientHttpConnector) { webHttpHandlerBuilder.filters(addSetupMutatorFilter()); }
@Override public void afterConfigurerAdded(WebTestClient.Builder builder, @Nullable WebHttpHandlerBuilder webHttpHandlerBuilder, @Nullable ClientHttpConnector clientHttpConnector) { webHttpHandlerBuilder.filters(addSetupMutatorFilter()); }
@Override public void beforeServerCreated(WebHttpHandlerBuilder builder) { builder.filters(addSetupMutatorFilter()); }
@Override public void afterConfigurerAdded(WebTestClient.Builder builder, @Nullable WebHttpHandlerBuilder httpHandlerBuilder, @Nullable ClientHttpConnector connector) { CsrfWebFilter filter = new CsrfWebFilter(); filter.setRequireCsrfProtectionMatcher( e -> ServerWebExchangeMatcher.MatchResult.notMatch()); httpHandlerBuilder.filters( filters -> filters.add(0, filter)); }
@Override public void afterConfigurerAdded(WebTestClient.Builder builder, @Nullable WebHttpHandlerBuilder httpHandlerBuilder, @Nullable ClientHttpConnector connector) { CsrfWebFilter filter = new CsrfWebFilter(); filter.setRequireCsrfProtectionMatcher( e -> ServerWebExchangeMatcher.MatchResult.notMatch()); httpHandlerBuilder.filters( filters -> filters.add(0, filter)); }
@Override public WebTestClient.Builder configureClient() { WebHttpHandlerBuilder builder = initHttpHandlerBuilder(); if (!CollectionUtils.isEmpty(this.filters)) { builder.filters(theFilters -> theFilters.addAll(0, this.filters)); } if (!builder.hasSessionManager() && this.sessionManager != null) { builder.sessionManager(this.sessionManager); } if (!CollectionUtils.isEmpty(this.configurers)) { this.configurers.forEach(configurer -> configurer.beforeServerCreated(builder)); } return new DefaultWebTestClientBuilder(builder); }
@Override public WebTestClient.Builder configureClient() { WebHttpHandlerBuilder builder = initHttpHandlerBuilder(); if (!CollectionUtils.isEmpty(this.filters)) { builder.filters(theFilters -> theFilters.addAll(0, this.filters)); } if (!builder.hasSessionManager() && this.sessionManager != null) { builder.sessionManager(this.sessionManager); } if (!CollectionUtils.isEmpty(this.configurers)) { this.configurers.forEach(configurer -> configurer.beforeServerCreated(builder)); } return new DefaultWebTestClientBuilder(builder); }
@Override protected WebHttpHandlerBuilder initHttpHandlerBuilder() { WebHandler webHandler = RouterFunctions.toWebHandler(this.routerFunction, this.handlerStrategies); return WebHttpHandlerBuilder.webHandler(webHandler) .filters(filters -> filters.addAll(this.handlerStrategies.webFilters())) .exceptionHandlers(handlers -> handlers.addAll(this.handlerStrategies.exceptionHandlers())) .localeContextResolver(this.handlerStrategies.localeContextResolver()); }