@Override
	public EurekaHttpClient newClient(EurekaEndpoint endpoint) {
		// we want a copy to modify. Don't change the original
		WebClient.Builder builder = this.builderSupplier.get().clone();
		setUrl(builder, endpoint.getServiceUrl());
		setCodecs(builder);
		builder.filter(http4XxErrorExchangeFilterFunction());
		return new WebClientEurekaHttpClient(builder.build());
	}
@Test
	void testUserInfoWithEncodedCharacters() {
		String encodedBasicAuth = HttpHeaders.encodeBasicAuth("test", "MyPassword@", null);
		String expectedAuthHeader = "Basic " + encodedBasicAuth;
		String expectedUrl = "http://localhost:8761";

		WebClientEurekaHttpClient client = (WebClientEurekaHttpClient) transportClientFatory
			.newClient(new DefaultEndpoint("http://test:MyPassword%40@localhost:8761"));

		client.getWebClient().get().retrieve().bodyToMono(Void.class).block(Duration.ofSeconds(10));

		ClientRequest request = verifyAndGetRequest();

		assertThat(request.headers().getFirst(HttpHeaders.AUTHORIZATION)).isEqualTo(expectedAuthHeader);
		assertThat(request.url().toString()).isEqualTo(expectedUrl);
	}