+
+ public static ExchangeFilterFunction errorHandlingFilter()
+ {
+ return ExchangeFilterFunction.ofResponseProcessor(clientResponse ->
+ {
+ if (clientResponse.statusCode() != null && (clientResponse.statusCode()
+ .is5xxServerError() || clientResponse.statusCode().is4xxClientError()))
+ {
+ return clientResponse.bodyToMono(String.class)
+ .flatMap(errorBody ->
+ {
+ return Mono.error(new Exception(errorBody));
+ });
+ }
+ else
+ {
+ return Mono.just(clientResponse);
+ }
+ });
+ }