Skip to content

Commit 4682a2c

Browse files
authored
Merge pull request #593 from splitio/proxy-update-p12file-type
Changed p12file type to InputStream
2 parents 789ee55 + 49d0608 commit 4682a2c

File tree

11 files changed

+29
-23
lines changed

11 files changed

+29
-23
lines changed

CHANGES.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
4.17.0 (Aug 22, 2025)
2+
- Added a maximum size payload when posting unique keys telemetry in batches
3+
- Added ProxyConfiguration parameter to support proxies, including Harness Forward Proxy, allowing also for more secured authentication options: MTLS, Bearer token and user/password authentication. Read more in our docs.
4+
15
4.16.1 (Jul 21, 2025)
26
- Fixed vulnerabilities:
37
- Upgraded org.apache.commons-commons-lang3 to 3.18.0

client/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
<parent>
66
<groupId>io.split.client</groupId>
77
<artifactId>java-client-parent</artifactId>
8-
<version>4.17.0-rc3</version>
8+
<version>4.17.0</version>
99
</parent>
10-
<version>4.17.0-rc3</version>
10+
<version>4.17.0</version>
1111
<artifactId>java-client</artifactId>
1212
<packaging>jar</packaging>
1313
<name>Java Client</name>

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@
121121
import java.net.InetAddress;
122122
import java.net.URI;
123123
import java.net.URISyntaxException;
124-
import java.nio.file.Paths;
125124
import java.security.KeyStore;
126125
import java.util.concurrent.ExecutorService;
127126
import java.util.stream.Collectors;
@@ -606,7 +605,7 @@ private static SSLContext buildSSLContext(SplitClientConfig config) throws IOExc
606605
InputStream keystoreStream = null;
607606
try {
608607
KeyStore keyStore = KeyStore.getInstance("PKCS12");
609-
keystoreStream = java.nio.file.Files.newInputStream(Paths.get(config.proxyConfiguration().getP12File()));
608+
keystoreStream = config.proxyConfiguration().getP12File();
610609
keyStore.load(keystoreStream, config.proxyConfiguration().getPassKey().toCharArray());
611610
sslContext = SSLContexts.custom()
612611
.loadKeyMaterial(keyStore, config.proxyConfiguration().getPassKey().toCharArray())

client/src/main/java/io/split/client/dtos/ProxyConfiguration.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,27 @@
22

33
import org.apache.hc.core5.http.HttpHost;
44

5+
import java.io.InputStream;
56
import java.net.MalformedURLException;
67
import java.net.URL;
78

89
public class ProxyConfiguration {
910
private final HttpHost _proxyHost;
1011
private ProxyCredentialsProvider _provider;
11-
private final String _p12File;
12+
private final InputStream _p12File;
1213
private final String _passKey;
1314

1415
private ProxyConfiguration(HttpHost proxyHost,
1516
ProxyCredentialsProvider proxyCredentialsProvider,
16-
String p12File, String passKey) {
17+
InputStream p12File, String passKey) {
1718
_proxyHost = proxyHost;
1819
_p12File = p12File;
1920
_passKey = passKey;
2021
_provider = proxyCredentialsProvider;
2122
}
2223

2324
public HttpHost getHost() { return _proxyHost; }
24-
public String getP12File() { return _p12File; }
25+
public InputStream getP12File() { return _p12File; }
2526
public String getPassKey() { return _passKey; }
2627
public ProxyCredentialsProvider getProxyCredentialsProvider() { return _provider; }
2728

@@ -32,7 +33,7 @@ public static ProxyConfiguration.Builder builder() {
3233
public static class Builder {
3334
private ProxyCredentialsProvider _provider;
3435
private HttpHost _proxyHost;
35-
private String _p12File;
36+
private InputStream _p12File;
3637
private String _passKey;
3738

3839
public ProxyConfiguration.Builder credentialsProvider(ProxyCredentialsProvider provider) {
@@ -49,7 +50,7 @@ public ProxyConfiguration.Builder url(URL url) throws MalformedURLException {
4950
return this;
5051
}
5152

52-
public ProxyConfiguration.Builder mtls(String p12File, String passKey) {
53+
public ProxyConfiguration.Builder mtls(InputStream p12File, String passKey) {
5354
_passKey = passKey;
5455
_p12File = p12File;
5556
return this;

client/src/test/java/io/split/client/SplitClientConfigTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import org.junit.Test;
1414
import org.mockito.Mockito;
1515

16+
import java.io.FileInputStream;
17+
import java.io.FileNotFoundException;
1618
import java.net.MalformedURLException;
1719
import java.net.URL;
1820
import java.util.List;
@@ -260,7 +262,7 @@ public Map<String, List<String>> getHeaderOverrides(RequestContext context) {
260262
}
261263

262264
@Test
263-
public void checkProxyParams() throws MalformedURLException {
265+
public void checkProxyParams() throws MalformedURLException, FileNotFoundException {
264266
SplitClientConfig config = SplitClientConfig.builder()
265267
.proxyConfiguration(new ProxyConfiguration.Builder()
266268
.url(new URL("https://proxy-host:8888"))
@@ -304,14 +306,14 @@ public String getToken() {
304306
.build())
305307
.build();
306308
Assert.assertEquals(bearerCredentialsProvider, config.proxyConfiguration().getProxyCredentialsProvider());
307-
309+
FileInputStream p12File = new FileInputStream("src/test/resources/keyStore.p12");
308310
config = SplitClientConfig.builder()
309311
.proxyConfiguration(new ProxyConfiguration.Builder()
310312
.url(new URL("https://proxy-host:888"))
311-
.mtls("path/to/file", "pass-key")
313+
.mtls(p12File, "pass-key")
312314
.build())
313315
.build();
314-
Assert.assertEquals("path/to/file", config.proxyConfiguration().getP12File());
316+
Assert.assertEquals(p12File, config.proxyConfiguration().getP12File());
315317
Assert.assertEquals("pass-key", config.proxyConfiguration().getPassKey());
316318
}
317319

@@ -352,11 +354,11 @@ public void mustUseP12FileWithProxyMtls() throws MalformedURLException {
352354
}
353355

354356
@Test(expected = IllegalArgumentException.class)
355-
public void mustUseP12PassKeyWithProxyMtls() throws MalformedURLException {
357+
public void mustUseP12PassKeyWithProxyMtls() throws MalformedURLException, FileNotFoundException {
356358
SplitClientConfig.builder()
357359
.proxyConfiguration(new ProxyConfiguration.Builder()
358360
.url(new URL("https://proxy-host:888"))
359-
.mtls("path/to/file", null)
361+
.mtls(new FileInputStream("src/test/resources/keyStore.p12"), null)
360362
.build())
361363
.build();
362364
}

client/src/test/java/io/split/client/SplitFactoryImplTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ public void testFactoryInstantiationWithProxyMtls() throws Exception {
242242
.setBlockUntilReadyTimeout(1000)
243243
.proxyConfiguration(ProxyConfiguration.builder()
244244
.url(new URL("http://proxy-name:6060"))
245-
.mtls("src/test/resources/keyStore.p12", "split")
245+
.mtls(new FileInputStream("src/test/resources/keyStore.p12"), "split")
246246
.build())
247247
.build();
248248
SplitFactoryImpl splitFactory3 = new SplitFactoryImpl(API_KEY, splitClientConfig);

okhttp-modules/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
<parent>
66
<artifactId>java-client-parent</artifactId>
77
<groupId>io.split.client</groupId>
8-
<version>4.17.0-rc3</version>
8+
<version>4.17.0</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
11-
<version>4.17.0-rc3</version>
11+
<version>4.17.0</version>
1212
<artifactId>okhttp-modules</artifactId>
1313
<packaging>jar</packaging>
1414
<name>http-modules</name>

pluggable-storage/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>java-client-parent</artifactId>
88
<groupId>io.split.client</groupId>
9-
<version>4.17.0-rc3</version>
9+
<version>4.17.0</version>
1010
</parent>
1111

1212
<version>2.1.0</version>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>io.split.client</groupId>
66
<artifactId>java-client-parent</artifactId>
7-
<version>4.17.0-rc3</version>
7+
<version>4.17.0</version>
88
<dependencyManagement>
99
<dependencies>
1010
<dependency>

redis-wrapper/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>java-client-parent</artifactId>
88
<groupId>io.split.client</groupId>
9-
<version>4.17.0-rc3</version>
9+
<version>4.17.0</version>
1010
</parent>
1111
<artifactId>redis-wrapper</artifactId>
1212
<version>3.1.1</version>

0 commit comments

Comments
 (0)