diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java index dacc0cad483..8b7b892290c 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/configuration/Configuration.java @@ -203,6 +203,8 @@ public static class Proxy { public String host; public int port = 80; + public String username; + public String password; } public static class PreviewConfiguration { diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/httpclient/LazyHttpClient.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/httpclient/LazyHttpClient.java index 60f40e2f8e9..395396b8f1d 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/httpclient/LazyHttpClient.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/httpclient/LazyHttpClient.java @@ -60,6 +60,8 @@ public class LazyHttpClient implements HttpClient { public static volatile CountDownLatch safeToInitLatch; public static volatile String proxyHost; public static volatile Integer proxyPortNumber; + public static volatile String proxyUsername; + public static volatile String proxyPassword; public static HttpClient getInstance() { return INSTANCE; @@ -109,9 +111,13 @@ private static HttpClient init() { NettyAsyncHttpClientBuilder builder = new NettyAsyncHttpClientBuilder(); if (proxyHost != null && proxyPortNumber != null) { - builder.proxy( + ProxyOptions proxyOptions = new ProxyOptions( - ProxyOptions.Type.HTTP, new InetSocketAddress(proxyHost, proxyPortNumber))); + ProxyOptions.Type.HTTP, new InetSocketAddress(proxyHost, proxyPortNumber)); + if (proxyUsername != null) { + proxyOptions.setCredentials(proxyUsername, proxyPassword); + } + builder.proxy(proxyOptions); } // keeping the thread count to 1 keeps the number of 16mb io.netty.buffer.PoolChunk to 1 also return builder diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiComponentInstaller.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiComponentInstaller.java index 718bc01c760..34132addcc9 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiComponentInstaller.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/init/AiComponentInstaller.java @@ -154,6 +154,8 @@ private static AppIdSupplier start(Instrumentation instrumentation) { if (config.proxy.host != null) { LazyHttpClient.proxyHost = config.proxy.host; LazyHttpClient.proxyPortNumber = config.proxy.port; + LazyHttpClient.proxyUsername = config.proxy.username; + LazyHttpClient.proxyPassword = config.proxy.password; } List metricFilters =