Skip to content

Commit ccc04c4

Browse files
committed
Add correct log message
1 parent 6b109e4 commit ccc04c4

File tree

4 files changed

+52
-3
lines changed

4 files changed

+52
-3
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1298,11 +1298,15 @@ private HttpProxy parseProxyHost(String proxyUri, ProxyConfiguration proxyConfig
12981298
return legacyProxyBehavior(proxyUri);
12991299
}
13001300

1301+
if (mProxyHost != null || mProxyAuthenticator != null) {
1302+
Logger.w("Both the deprecated proxy configuration methods (proxyHost, proxyAuthenticator) and the new ProxyConfiguration builder are being used. ProxyConfiguration will take precedence.");
1303+
}
1304+
13011305
// Initialize internal config with null url. This will be verified when building the factory.
13021306
HttpProxy.Builder builder = HttpProxy.newBuilder(null, -1);
13031307
if (proxyConfiguration.getUrl() != null) {
13041308
builder = HttpProxy.newBuilder(proxyConfiguration.getUrl().getHost(), proxyConfiguration.getUrl().getPort())
1305-
.mtlsAuth(proxyConfiguration.getClientCert(), proxyConfiguration.getClientPk())
1309+
.mtls(proxyConfiguration.getClientCert(), proxyConfiguration.getClientPk())
13061310
.proxyCacert(proxyConfiguration.getCaCert())
13071311
.credentialsProvider(proxyConfiguration.getCredentialsProvider());
13081312
}

src/main/java/io/split/android/client/network/HttpProxy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public Builder proxyCacert(@NonNull InputStream caCertStream) {
9090
return this;
9191
}
9292

93-
public Builder mtlsAuth(@NonNull InputStream clientCertStream, @NonNull InputStream keyStream) {
93+
public Builder mtls(@NonNull InputStream clientCertStream, @NonNull InputStream keyStream) {
9494
mClientCertStream = clientCertStream;
9595
mClientKeyStream = keyStream;
9696
return this;

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

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import static junit.framework.TestCase.assertTrue;
77

88
import androidx.annotation.NonNull;
9+
import androidx.annotation.Nullable;
910

1011
import org.junit.Test;
1112

@@ -14,6 +15,9 @@
1415
import java.util.concurrent.TimeUnit;
1516

1617
import io.split.android.client.network.CertificatePinningConfiguration;
18+
import io.split.android.client.network.ProxyConfiguration;
19+
import io.split.android.client.network.SplitAuthenticatedRequest;
20+
import io.split.android.client.network.SplitAuthenticator;
1721
import io.split.android.client.utils.logger.LogPrinter;
1822
import io.split.android.client.utils.logger.Logger;
1923
import io.split.android.client.utils.logger.SplitLogLevel;
@@ -256,6 +260,47 @@ public void nullRolloutCacheConfigurationSetsDefault() {
256260
assertEquals(1, logMessages.size());
257261
}
258262

263+
@Test
264+
public void proxyHostAndProxyConfigurationSetLogWarning() {
265+
Queue<String> logMessages = getLogMessagesQueue();
266+
SplitClientConfig.builder()
267+
.logLevel(SplitLogLevel.WARNING)
268+
.proxyHost("proxyHost")
269+
.proxyConfiguration(ProxyConfiguration.builder().url("http://proxy.url").build())
270+
.build();
271+
assertEquals(1, logMessages.size());
272+
assertEquals("Both the deprecated proxy configuration methods (proxyHost, proxyAuthenticator) and the new ProxyConfiguration builder are being used. ProxyConfiguration will take precedence.", logMessages.poll());
273+
}
274+
275+
@Test
276+
public void proxyAuthenticatorAndProxyConfigurationSetLogWarning() {
277+
Queue<String> logMessages = getLogMessagesQueue();
278+
SplitClientConfig.builder()
279+
.logLevel(SplitLogLevel.WARNING)
280+
.proxyAuthenticator(new SplitAuthenticator() {
281+
@Nullable
282+
@Override
283+
public SplitAuthenticatedRequest authenticate(@NonNull SplitAuthenticatedRequest request) {
284+
return null;
285+
}
286+
})
287+
.proxyConfiguration(ProxyConfiguration.builder().url("http://proxy.url").build())
288+
.build();
289+
assertEquals(1, logMessages.size());
290+
assertEquals("Both the deprecated proxy configuration methods (proxyHost, proxyAuthenticator) and the new ProxyConfiguration builder are being used. ProxyConfiguration will take precedence.", logMessages.poll());
291+
}
292+
293+
@Test
294+
public void proxyConfigurationWithNoUrlSetLogWarning() {
295+
Queue<String> logMessages = getLogMessagesQueue();
296+
SplitClientConfig.builder()
297+
.logLevel(SplitLogLevel.WARNING)
298+
.proxyConfiguration(ProxyConfiguration.builder().build())
299+
.build();
300+
assertEquals(1, logMessages.size());
301+
assertEquals("Proxy configuration with no URL. This will prevent SplitFactory from working.", logMessages.poll());
302+
}
303+
259304
@NonNull
260305
private static Queue<String> getLogMessagesQueue() {
261306
Queue<String> logMessages = new LinkedList<>();

src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ public MockResponse dispatch(RecordedRequest request) {
388388

389389
// 4. Configure HttpProxy with mTLS (client cert, key, and CA)
390390
HttpProxy proxy = HttpProxy.newBuilder("localhost", assignedProxyPort)
391-
.mtlsAuth(
391+
.mtls(
392392
Files.newInputStream(clientCertFile.toPath()),
393393
Files.newInputStream(clientKeyFile.toPath())
394394
)

0 commit comments

Comments
 (0)