Skip to content

Commit 24852ea

Browse files
author
Bilal Al
committed
fixed checking headers in decorator and updated tests
1 parent 84eeea5 commit 24852ea

File tree

4 files changed

+36
-15
lines changed

4 files changed

+36
-15
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public RequestContext decorateHeaders(RequestContext request) {
3737
return new RequestContext(_headerDecorator.getHeaderOverrides(request)
3838
.entrySet()
3939
.stream()
40-
.filter(e -> !forbiddenHeaders.contains(e.getKey()))
40+
.filter(e -> !forbiddenHeaders.contains(e.getKey().toLowerCase()))
4141
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
4242
} catch (Exception e) {
4343
throw new IllegalArgumentException(

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,6 +1085,13 @@ private void verifyNetworkParams() {
10851085
throw new IllegalStateException("_onDemandFetchMaxRetries must be > 0");
10861086
}
10871087
}
1088+
1089+
private void verifyAlternativeClient() {
1090+
if (_alternativeHTTPModule != null && _streamingEnabled) {
1091+
throw new IllegalArgumentException("Streaming feature is not supported with Alternative HTTP Client");
1092+
}
1093+
}
1094+
10881095
public SplitClientConfig build() {
10891096

10901097
verifyRates();
@@ -1095,6 +1102,8 @@ public SplitClientConfig build() {
10951102

10961103
verifyNetworkParams();
10971104

1105+
verifyAlternativeClient();
1106+
10981107
if (_numThreadsForSegmentFetch <= 0) {
10991108
throw new IllegalArgumentException("Number of threads for fetching segments MUST be greater than zero");
11001109
}

client/src/test/java/io/split/client/ApacheRequestDecoratorTest.java renamed to client/src/test/java/io/split/client/utils/ApacheRequestDecoratorTest.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
1-
package io.split.client;
1+
package io.split.client.utils;
22

3-
import io.split.client.utils.ApacheRequestDecorator;
3+
import io.split.client.CustomHeaderDecorator;
4+
import io.split.client.RequestDecorator;
5+
import io.split.client.dtos.RequestContext;
46
import org.apache.hc.client5.http.classic.methods.HttpGet;
57
import org.apache.hc.client5.http.classic.methods.HttpPost;
68
import org.apache.hc.core5.http.Header;
79
import org.apache.hc.core5.http.ProtocolException;
810
import org.junit.Assert;
911
import org.junit.Test;
1012

11-
import static org.hamcrest.MatcherAssert.assertThat;
12-
import static org.hamcrest.core.Is.is;
13-
14-
import io.split.client.dtos.RequestContext;
15-
1613
import java.util.List;
1714
import java.util.Arrays;
1815
import java.util.Map;
@@ -31,7 +28,7 @@ public void testNoOp() {
3128
request = (HttpGet) apacheRequestDecorator.decorate(request, requestDecorator);
3229
Assert.assertEquals(1, request.getHeaders().length);
3330
}
34-
/*
31+
3532
@Test
3633
public void testAddCustomHeaders() throws ProtocolException {
3734
class MyCustomHeaders implements CustomHeaderDecorator {
@@ -47,9 +44,11 @@ public Map<String, List<String>> getHeaderOverrides(RequestContext context) {
4744
}
4845
MyCustomHeaders myHeaders = new MyCustomHeaders();
4946
RequestDecorator decorator = new RequestDecorator(myHeaders);
47+
ApacheRequestDecorator apacheRequestDecorator = new ApacheRequestDecorator();
48+
5049
HttpGet request = new HttpGet("http://anyhost");
5150
request.addHeader("first", "myfirstheader");
52-
request = (HttpGet) decorator.decorateHeaders(request);
51+
request = (HttpGet) apacheRequestDecorator.decorate(request, decorator);
5352

5453
Assert.assertEquals(4, request.getHeaders().length);
5554
Assert.assertEquals("1", request.getHeader("first").getValue());
@@ -61,7 +60,7 @@ public Map<String, List<String>> getHeaderOverrides(RequestContext context) {
6160

6261
HttpPost request2 = new HttpPost("http://anyhost");
6362
request2.addHeader("myheader", "value");
64-
request2 = (HttpPost) decorator.decorateHeaders(request2);
63+
request2 = (HttpPost) apacheRequestDecorator.decorate(request2, decorator);
6564
Assert.assertEquals(5, request2.getHeaders().length);
6665
}
6766

@@ -90,8 +89,9 @@ public Map<String, List<String>> getHeaderOverrides(RequestContext context) {
9089
}
9190
MyCustomHeaders myHeaders = new MyCustomHeaders();
9291
RequestDecorator decorator = new RequestDecorator(myHeaders);
92+
ApacheRequestDecorator apacheRequestDecorator = new ApacheRequestDecorator();
9393
HttpGet request = new HttpGet("http://anyhost");
94-
request = (HttpGet) decorator.decorateHeaders(request);
94+
request = (HttpGet) apacheRequestDecorator.decorate(request, decorator);
9595
Assert.assertEquals(1, request.getHeaders().length);
9696
Assert.assertEquals(null, request.getHeader("SplitSDKVersion"));
9797
}
@@ -107,9 +107,8 @@ public Map<String, List<String>> getHeaderOverrides(RequestContext context) {
107107
}
108108
MyCustomHeaders myHeaders = new MyCustomHeaders();
109109
RequestDecorator decorator = new RequestDecorator(myHeaders);
110+
ApacheRequestDecorator apacheRequestDecorator = new ApacheRequestDecorator();
110111
HttpGet request = new HttpGet("http://anyhost");
111-
request = (HttpGet) decorator.decorateHeaders(request);
112+
request = (HttpGet) apacheRequestDecorator.decorate(request, decorator);
112113
}
113-
114-
*/
115114
}

okhttp-modules/src/test/java/io/split/httpmodules/okhttp/SplitConfigTests.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,17 @@ public void checkExpectedAuthScheme() {
2828
Assert.assertEquals(null, cfg.alternativeHTTPModule());
2929
}
3030

31+
@Test(expected = IllegalArgumentException.class)
32+
public void checkStreamingEnabled() {
33+
SplitClientConfig cfg = SplitClientConfig.builder()
34+
.alternativeHTTPModule(OkHttpModule.builder()
35+
.proxyAuthScheme(ProxyAuthScheme.KERBEROS)
36+
.proxyAuthKerberosPrincipalName("bilal@bilal")
37+
.proxyHost("some-proxy")
38+
.proxyPort(3128)
39+
.debugEnabled()
40+
.build())
41+
.streamingEnabled(true)
42+
.build();
43+
}
3144
}

0 commit comments

Comments
 (0)