Skip to content

Commit a87966a

Browse files
committed
NH-120449: add proxy for http getSettings
1 parent 4b00269 commit a87966a

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ plugins{
1818
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
1919
}
2020

21-
val swoAgentVersion = "3.0.1"
21+
val swoAgentVersion = "3.0.2"
2222
extra["swoAgentVersion"] = swoAgentVersion
2323
group = "com.solarwinds"
2424
version = if (System.getenv("SNAPSHOT_BUILD").toBoolean()) "$swoAgentVersion-SNAPSHOT" else swoAgentVersion

custom/src/main/java/com/solarwinds/opentelemetry/extensions/config/HttpSettingsReaderDelegate.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package com.solarwinds.opentelemetry.extensions.config;
1818

19+
import com.solarwinds.joboe.config.ConfigManager;
20+
import com.solarwinds.joboe.config.ConfigProperty;
21+
import com.solarwinds.joboe.config.ProxyConfig;
1922
import com.solarwinds.joboe.logging.Logger;
2023
import com.solarwinds.joboe.logging.LoggerFactory;
2124
import com.solarwinds.joboe.sampling.Settings;
@@ -26,6 +29,8 @@
2629
import java.io.IOException;
2730
import java.io.InputStreamReader;
2831
import java.net.HttpURLConnection;
32+
import java.net.InetSocketAddress;
33+
import java.net.Proxy;
2934
import java.net.URL;
3035
import java.util.concurrent.atomic.AtomicReference;
3136

@@ -88,7 +93,16 @@ private String getErrorMessage(HttpURLConnection connection) {
8893
}
8994

9095
HttpURLConnection getHttpUrlConnection(URL url, String authorizationHeader) throws IOException {
91-
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
96+
HttpURLConnection connection;
97+
ProxyConfig proxyConfig = (ProxyConfig) ConfigManager.getConfig(ConfigProperty.AGENT_PROXY);
98+
if (proxyConfig != null) {
99+
Proxy proxy =
100+
new Proxy(
101+
Proxy.Type.HTTP, new InetSocketAddress(proxyConfig.getHost(), proxyConfig.getPort()));
102+
connection = (HttpURLConnection) url.openConnection(proxy);
103+
} else {
104+
connection = (HttpURLConnection) url.openConnection();
105+
}
92106

93107
connection.setRequestMethod("GET");
94108
connection.setRequestProperty("Authorization", authorizationHeader);

custom/src/test/java/com/solarwinds/opentelemetry/extensions/config/HttpSettingsReaderDelegateTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
import static org.mockito.Mockito.verify;
2828
import static org.mockito.Mockito.when;
2929

30+
import com.solarwinds.joboe.config.ConfigManager;
31+
import com.solarwinds.joboe.config.ConfigProperty;
32+
import com.solarwinds.joboe.config.InvalidConfigException;
33+
import com.solarwinds.joboe.config.ProxyConfig;
3034
import com.solarwinds.joboe.sampling.Settings;
3135
import io.opentelemetry.api.internal.InstrumentationUtil;
3236
import java.io.ByteArrayInputStream;
@@ -198,4 +202,22 @@ void testGetHttpUrlConnection_Configuration() throws IOException {
198202
verify(mockConnection).setConnectTimeout(10000);
199203
verify(mockConnection).setReadTimeout(10000);
200204
}
205+
206+
@Test
207+
void testGetHttpUrlConnectionConfigurationProxy() throws IOException, InvalidConfigException {
208+
ConfigManager.setConfig(ConfigProperty.AGENT_PROXY, new ProxyConfig("localhost", 1000,"test","test"));
209+
when(mockUrl.openConnection(any())).thenReturn(mockConnection);
210+
211+
HttpURLConnection result = tested.getHttpUrlConnection(mockUrl, TEST_AUTH_HEADER);
212+
213+
assertEquals(mockConnection, result);
214+
215+
verify(mockConnection).setRequestMethod("GET");
216+
verify(mockConnection).setRequestProperty("Authorization", TEST_AUTH_HEADER);
217+
verify(mockConnection).setRequestProperty("Content-Type", "application/json");
218+
219+
verify(mockConnection).setRequestProperty("Accept", "application/json");
220+
verify(mockConnection).setConnectTimeout(10000);
221+
verify(mockConnection).setReadTimeout(10000);
222+
}
201223
}

0 commit comments

Comments
 (0)