Skip to content

Commit 897caec

Browse files
committed
[java] Acknowledging proxy config set in ClientConfig
Fixes #10231
1 parent cb6bc2a commit 897caec

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

java/src/org/openqa/selenium/remote/http/netty/NettyClient.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.asynchttpclient.Dsl;
2525
import org.asynchttpclient.Realm;
2626
import org.asynchttpclient.config.AsyncHttpClientConfigDefaults;
27+
import org.asynchttpclient.proxy.ProxyServer;
2728
import org.openqa.selenium.Credentials;
2829
import org.openqa.selenium.UsernameAndPassword;
2930
import org.openqa.selenium.internal.Require;
@@ -40,6 +41,7 @@
4041
import io.netty.util.Timer;
4142
import io.netty.util.concurrent.DefaultThreadFactory;
4243

44+
import java.net.InetSocketAddress;
4345
import java.util.concurrent.ThreadFactory;
4446
import java.util.concurrent.TimeUnit;
4547
import java.util.function.BiFunction;
@@ -88,18 +90,30 @@ private static AsyncHttpClient createHttpClient(ClientConfig config) {
8890
.setRequestTimeout(toClampedInt(config.readTimeout().toMillis()))
8991
.setConnectTimeout(toClampedInt(config.connectionTimeout().toMillis()))
9092
.setReadTimeout(toClampedInt(config.readTimeout().toMillis()))
91-
.setUseProxyProperties(true)
92-
.setUseProxySelector(true)
9393
.setFollowRedirect(true);
9494

95+
Realm.Builder realmBuilder = null;
9596
if (config.credentials() != null) {
9697
Credentials credentials = config.credentials();
9798
if (!(credentials instanceof UsernameAndPassword)) {
9899
throw new IllegalArgumentException("Credentials must be a username and password");
99100
}
100101
UsernameAndPassword uap = (UsernameAndPassword) credentials;
101-
builder.setRealm(
102-
new Realm.Builder(uap.username(), uap.password()).setUsePreemptiveAuth(true));
102+
realmBuilder = new Realm.Builder(uap.username(), uap.password());
103+
builder.setRealm(realmBuilder.setUsePreemptiveAuth(true));
104+
}
105+
106+
if (config.proxy() != null) {
107+
InetSocketAddress address = (InetSocketAddress) config.proxy().address();
108+
ProxyServer.Builder proxyBuilder = new ProxyServer.Builder(
109+
address.getHostName(), address.getPort());
110+
if (realmBuilder != null) {
111+
proxyBuilder.setRealm(realmBuilder);
112+
}
113+
builder.setProxyServer(proxyBuilder);
114+
} else {
115+
builder.setUseProxyProperties(true)
116+
.setUseProxySelector(true);
103117
}
104118

105119
return Dsl.asyncHttpClient(builder);

0 commit comments

Comments
 (0)