Skip to content

Commit 36c4b74

Browse files
committed
feat: add httpclient auth header arex-api-token
1 parent a85bea4 commit 36c4b74

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

arex-agent-bootstrap/src/main/java/io/arex/agent/bootstrap/constants/ConfigConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,5 @@ private ConfigConstants() {
3434
public static final String SHADED_LOGGER_DATE_TIME_FORMAT = "shaded.org.slf4j.simpleLogger.dateTimeFormat";
3535
public static final String COVERAGE_PACKAGES = "arex.coverage.packages";
3636
public static final String APP_CLASSLOADER_NAME = "jdk.internal.loader.ClassLoaders$AppClassLoader";
37+
public static final String API_TOKEN = "arex.api.token";
3738
}

arex-instrumentation-foundation/src/main/java/io/arex/foundation/util/httpclient/AsyncHttpClientUtil.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package io.arex.foundation.util.httpclient;
22

3+
import io.arex.agent.bootstrap.constants.ConfigConstants;
34
import io.arex.agent.bootstrap.util.MapUtils;
5+
import io.arex.agent.bootstrap.util.StringUtil;
46
import io.arex.foundation.config.ConfigManager;
57
import io.arex.foundation.model.HttpClientResponse;
68
import io.arex.foundation.util.CompressUtil;
79
import io.arex.foundation.util.httpclient.async.AutoCleanedPoolingNHttpClientConnectionManager;
810
import io.arex.foundation.util.httpclient.async.ThreadFactoryImpl;
911
import io.arex.inst.runtime.log.LogManager;
12+
import org.apache.http.Header;
1013
import org.apache.http.HttpEntity;
1114
import org.apache.http.HttpHeaders;
1215
import org.apache.http.client.config.RequestConfig;
@@ -15,6 +18,7 @@
1518
import org.apache.http.entity.ByteArrayEntity;
1619
import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
1720
import org.apache.http.impl.nio.client.HttpAsyncClients;
21+
import org.apache.http.message.BasicHeader;
1822
import org.slf4j.Logger;
1923
import org.slf4j.LoggerFactory;
2024

@@ -30,8 +34,7 @@
3034
public class AsyncHttpClientUtil {
3135

3236
private static final Logger LOGGER = LoggerFactory.getLogger(AsyncHttpClientUtil.class);
33-
private static final String USER_AGENT = String.format("arex-async-http-client-%s",
34-
ConfigManager.INSTANCE.getAgentVersion());
37+
3538
/**
3639
* the compressed size of the sent httpEntity is limited to less than 5MB
3740
*/
@@ -95,7 +98,7 @@ private static HttpUriRequest createHttpPost(String uri, HttpEntity httpEntity,
9598
ClientConfig.DEFAULT_SOCKET_TIMEOUT);
9699
httpPost.setEntity(httpEntity);
97100

98-
if (requestHeaders != null && requestHeaders.size() > 0) {
101+
if (MapUtils.isNotEmpty(requestHeaders)) {
99102
requestHeaders.forEach(httpPost::addHeader);
100103
}
101104
return httpPost;
@@ -107,8 +110,9 @@ private static HttpPost prepareHttpRequest(String uri, int connectTimeout, int s
107110
RequestConfig requestConfig = createRequestConfig(connectTimeout, socketTimeout);
108111

109112
httpPost.setConfig(requestConfig);
110-
httpPost.addHeader(HttpHeaders.ACCEPT, "*");
111-
httpPost.addHeader(HttpHeaders.USER_AGENT, USER_AGENT);
113+
httpPost.addHeader(ClientConfig.HEADER_ACCEPT);
114+
httpPost.addHeader(ClientConfig.HEADER_USER_AGENT);
115+
httpPost.addHeader(ClientConfig.HEADER_API_TOKEN);
112116

113117
return httpPost;
114118
}
@@ -141,5 +145,11 @@ static class ClientConfig {
141145
private static final int DEFAULT_SOCKET_TIMEOUT = 5000;
142146
private static final String APPLICATION_ZSTD_JSON = "application/zstd-json;charset=UTF-8";
143147
private static final String APPLICATION_JSON = "application/json;charset=UTF-8";
148+
149+
private static final Header HEADER_ACCEPT = new BasicHeader(HttpHeaders.ACCEPT, "*/*");
150+
private static final Header HEADER_USER_AGENT = new BasicHeader(HttpHeaders.USER_AGENT,
151+
String.format("arex-async-http-client-%s", ConfigManager.INSTANCE.getAgentVersion()));
152+
private static final Header HEADER_API_TOKEN = new BasicHeader("arex-api-token",
153+
System.getProperty(ConfigConstants.API_TOKEN, StringUtil.EMPTY));
144154
}
145155
}

0 commit comments

Comments
 (0)