Skip to content

Commit b0ffa88

Browse files
committed
pr feedback
1 parent 66bd0ac commit b0ffa88

File tree

9 files changed

+288
-204
lines changed

9 files changed

+288
-204
lines changed

client/src/main/java/io/split/client/SplitFactoryImpl.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import io.split.client.impressions.AsynchronousImpressionListener;
44
import io.split.client.impressions.ImpressionListener;
55
import io.split.client.impressions.ImpressionsManagerImpl;
6-
import io.split.client.interceptors.AddSplitHeadersFilter;
6+
import io.split.client.interceptors.AuthorizationInterceptorFilter;
7+
import io.split.client.interceptors.ClientKeyInterceptorFilter;
78
import io.split.client.interceptors.GzipDecoderResponseInterceptor;
89
import io.split.client.interceptors.GzipEncoderRequestInterceptor;
10+
import io.split.client.interceptors.SdkMetadataInterceptorFilter;
911
import io.split.client.metrics.HttpMetrics;
1012
import io.split.cache.InMemoryCacheImp;
1113
import io.split.cache.SplitCache;
@@ -216,7 +218,8 @@ private static CloseableHttpClient buildHttpClient(String apiToken, SplitClientC
216218
HttpClientBuilder httpClientbuilder = HttpClients.custom()
217219
.setConnectionManager(cm)
218220
.setDefaultRequestConfig(requestConfig)
219-
.addRequestInterceptorLast(AddSplitHeadersFilter.instance(apiToken, config.ipAddressEnabled(), false))
221+
.addRequestInterceptorLast(AuthorizationInterceptorFilter.instance(apiToken))
222+
.addRequestInterceptorLast(SdkMetadataInterceptorFilter.instance(config.ipAddressEnabled(), SplitClientConfig.splitSdkVersion))
220223
.addRequestInterceptorLast(new GzipEncoderRequestInterceptor())
221224
.addResponseInterceptorLast((new GzipDecoderResponseInterceptor()));
222225

@@ -250,7 +253,8 @@ private static CloseableHttpClient buildSSEdHttpClient(String apiToken, SplitCli
250253
HttpClientBuilder httpClientbuilder = HttpClients.custom()
251254
.setConnectionManager(cm)
252255
.setDefaultRequestConfig(requestConfig)
253-
.addRequestInterceptorLast(AddSplitHeadersFilter.instance(apiToken, config.ipAddressEnabled(), true));
256+
.addRequestInterceptorLast(SdkMetadataInterceptorFilter.instance(config.ipAddressEnabled(), SplitClientConfig.splitSdkVersion))
257+
.addRequestInterceptorLast(ClientKeyInterceptorFilter.instance(apiToken));
254258

255259
// Set up proxy is it exists
256260
if (config.proxy() != null) {

client/src/main/java/io/split/client/interceptors/AddSplitHeadersFilter.java

Lines changed: 0 additions & 87 deletions
This file was deleted.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.split.client.interceptors;
2+
3+
import org.apache.hc.core5.http.EntityDetails;
4+
import org.apache.hc.core5.http.HttpException;
5+
import org.apache.hc.core5.http.HttpRequest;
6+
import org.apache.hc.core5.http.HttpRequestInterceptor;
7+
import org.apache.hc.core5.http.protocol.HttpContext;
8+
9+
import java.io.IOException;
10+
11+
import static com.google.common.base.Preconditions.checkNotNull;
12+
13+
public class AuthorizationInterceptorFilter implements HttpRequestInterceptor {
14+
static final String AUTHORIZATION_HEADER = "Authorization";
15+
16+
private final String _apiTokenBearer;
17+
18+
public static AuthorizationInterceptorFilter instance(String apiToken) {
19+
return new AuthorizationInterceptorFilter(apiToken);
20+
}
21+
22+
private AuthorizationInterceptorFilter(String apiToken) {
23+
_apiTokenBearer = "Bearer " + checkNotNull(apiToken);
24+
}
25+
26+
@Override
27+
public void process(HttpRequest httpRequest, EntityDetails entityDetails, HttpContext httpContext) throws HttpException, IOException {
28+
httpRequest.addHeader(AUTHORIZATION_HEADER, _apiTokenBearer);
29+
}
30+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package io.split.client.interceptors;
2+
3+
import org.apache.hc.core5.http.EntityDetails;
4+
import org.apache.hc.core5.http.HttpException;
5+
import org.apache.hc.core5.http.HttpRequest;
6+
import org.apache.hc.core5.http.HttpRequestInterceptor;
7+
import org.apache.hc.core5.http.protocol.HttpContext;
8+
9+
import java.io.IOException;
10+
11+
public class ClientKeyInterceptorFilter implements HttpRequestInterceptor {
12+
static final String CLIENT_KEY = "SplitSDKClientKey";
13+
14+
private final String _clientKey;
15+
16+
public static ClientKeyInterceptorFilter instance(String apiToken) {
17+
return new ClientKeyInterceptorFilter(apiToken.substring(apiToken.length() - 4));
18+
}
19+
20+
private ClientKeyInterceptorFilter(String clientKey) {
21+
_clientKey = clientKey;
22+
}
23+
24+
@Override
25+
public void process(HttpRequest httpRequest, EntityDetails entityDetails, HttpContext httpContext) throws HttpException, IOException {
26+
httpRequest.addHeader(CLIENT_KEY, _clientKey);
27+
}
28+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package io.split.client.interceptors;
2+
3+
import io.split.client.SplitClientConfig;
4+
import org.apache.hc.core5.http.EntityDetails;
5+
import org.apache.hc.core5.http.HttpException;
6+
import org.apache.hc.core5.http.HttpRequest;
7+
import org.apache.hc.core5.http.HttpRequestInterceptor;
8+
import org.apache.hc.core5.http.protocol.HttpContext;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
11+
12+
import java.io.IOException;
13+
import java.net.InetAddress;
14+
15+
public class SdkMetadataInterceptorFilter implements HttpRequestInterceptor {
16+
private static final Logger _log = LoggerFactory.getLogger(SdkMetadataInterceptorFilter.class);
17+
18+
static final String CLIENT_MACHINE_NAME_HEADER = "SplitSDKMachineName";
19+
static final String CLIENT_MACHINE_IP_HEADER = "SplitSDKMachineIP";
20+
static final String CLIENT_VERSION = "SplitSDKVersion";
21+
22+
private final String _hostname;
23+
private final String _ip;
24+
private final String _sdkVersion;
25+
26+
public static SdkMetadataInterceptorFilter instance(boolean ipAddressEnabled, String sdkVersion) {
27+
String hostName = null;
28+
String ip = null;
29+
30+
if (ipAddressEnabled) {
31+
try {
32+
InetAddress localHost = InetAddress.getLocalHost();
33+
hostName = localHost.getHostName();
34+
ip = localHost.getHostAddress();
35+
} catch (Exception e) {
36+
_log.error("Could not resolve InetAddress", e);
37+
}
38+
}
39+
40+
return new SdkMetadataInterceptorFilter(hostName, ip, sdkVersion);
41+
}
42+
43+
private SdkMetadataInterceptorFilter(String hostName, String ip, String sdkVersion) {
44+
_sdkVersion = sdkVersion;
45+
_hostname = hostName;
46+
_ip = ip;
47+
}
48+
49+
@Override
50+
public void process(HttpRequest httpRequest, EntityDetails entityDetails, HttpContext httpContext) throws HttpException, IOException {
51+
httpRequest.addHeader(CLIENT_VERSION, SplitClientConfig.splitSdkVersion);
52+
53+
if (_hostname != null) {
54+
httpRequest.addHeader(CLIENT_MACHINE_NAME_HEADER, _hostname);
55+
}
56+
57+
if (_ip != null) {
58+
httpRequest.addHeader(CLIENT_MACHINE_IP_HEADER, _ip);
59+
}
60+
}
61+
}

client/src/test/java/io/split/client/interceptors/AddSplitHeadersFilterTest.java

Lines changed: 0 additions & 114 deletions
This file was deleted.

0 commit comments

Comments
 (0)