public static ExchangeFilterFunction setInstance(Mono<Instance> instance) { return (request, next) -> instance.map(i -> ClientRequest.from(request) .attribute(ATTRIBUTE_INSTANCE, i) .build()) .switchIfEmpty(request.url().isAbsolute() ? Mono.just(request) : Mono.error( new ResolveInstanceException("Could not resolve Instance"))) .flatMap(next::exchange); }
if (request.url().toString().equals(instance.getRegistration().getManagementUrl())) { return next.exchange(ClientRequest.from(request) .attribute(ATTRIBUTE_ENDPOINT, Endpoint.ACTUATOR_INDEX) .build()); ); ClientRequest newRequest = ClientRequest.from(request) .attribute(ATTRIBUTE_ENDPOINT, endpoint.get().getId()) .url(newUrl) .build();