Технически, в контракте говорится, что фильтр должен возвращать Mono<Void>
, что завершается после обработки обмена (запрос + ответ).
Обычный WebFilter
что-то делает с запросом / ответоми затем пересылает обмен на следующий фильтр в цепочке.Но вы также можете в одностороннем порядке обработать обмен и назвать его выполненным.
В этом примере мы устанавливаем код состояния и вызываем ответ.
class MyFilter implements WebFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
ServerHttpResponse response = exchange.getResponse();
response.setStatusCode(HttpStatus.NOT_FOUND);
return response.setComplete();
}
}