Skip to content

Commit

Permalink
Merge pull request #818 from /issues/817-iproov-proxy
Browse files Browse the repository at this point in the history
Fix #817: Configure proxy for iProov user management
  • Loading branch information
banterCZ authored Aug 1, 2023
2 parents 82ede91 + 5803a02 commit 609a813
Showing 1 changed file with 20 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import io.netty.channel.ChannelOption;
import lombok.extern.slf4j.Slf4j;
import net.minidev.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
Expand Down Expand Up @@ -55,6 +56,7 @@
import org.springframework.web.util.UriComponentsBuilder;
import reactor.netty.http.client.HttpClient;
import reactor.netty.resources.ConnectionProvider;
import reactor.netty.transport.ProxyProvider;

import java.time.Duration;
import java.util.Map;
Expand Down Expand Up @@ -178,9 +180,26 @@ private static WebClient createWebClient(final ExchangeFilterFunction filter, IP
final ConnectionProvider connectionProvider = ConnectionProvider.builder("custom")
.maxIdleTime(maxIdleTime)
.build();
final HttpClient httpClient = HttpClient.create(connectionProvider)
HttpClient httpClient = HttpClient.create(connectionProvider)
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, connectionTimeout)
.responseTimeout(responseTimeout);

if (restClientConfig.isProxyEnabled()) {
logger.debug("Configuring proxy {}:{}", restClientConfig.getProxyHost(), restClientConfig.getProxyPort());
httpClient = httpClient.proxy((proxySpec) -> {
final ProxyProvider.Builder proxyBuilder = proxySpec
.type(ProxyProvider.Proxy.HTTP)
.host(restClientConfig.getProxyHost())
.port(restClientConfig.getProxyPort());
if (StringUtils.isNotBlank(restClientConfig.getProxyUsername())) {
proxyBuilder.username(restClientConfig.getProxyUsername());
proxyBuilder.password(s -> restClientConfig.getProxyPassword());
}

proxyBuilder.build();
});
}

final ReactorClientHttpConnector connector = new ReactorClientHttpConnector(httpClient);

return WebClient.builder()
Expand Down

0 comments on commit 609a813

Please sign in to comment.