Skip to content

Commit 7bf92ab

Browse files
author
Inbal Tako
committed
Add proxy headers support
1 parent 43608be commit 7bf92ab

File tree

3 files changed

+38
-6
lines changed

3 files changed

+38
-6
lines changed

src/main/java/com/securenative/config/ConfigurationManager.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77
import com.securenative.utils.Utils;
88

99
import java.io.FileInputStream;
10-
import java.io.FileNotFoundException;
1110
import java.io.IOException;
1211
import java.io.InputStream;
1312
import java.net.URL;
1413
import java.nio.file.Path;
14+
import java.util.ArrayList;
15+
import java.util.Arrays;
16+
import java.util.Objects;
1517
import java.util.Properties;
1618

1719
public class ConfigurationManager {
@@ -61,6 +63,12 @@ private static String getPropertyOrEnvOrDefault(Properties properties, String ke
6163
return res == null ? null : res.toString();
6264
}
6365

66+
private static ArrayList<String> getPropertyListOrEnvOrDefault(Properties properties, String key, Object defaultValue) {
67+
String defaultStrValue = defaultValue == null ? null : defaultValue.toString();
68+
Object res = properties.getOrDefault(key, getEnvOrDefault(key, defaultStrValue));
69+
return res == null ? null : new ArrayList<>(Arrays.asList(res.toString().split(",")));
70+
}
71+
6472
public static SecureNativeConfigurationBuilder configBuilder() {
6573
return SecureNativeConfigurationBuilder.defaultConfigBuilder();
6674
}
@@ -96,8 +104,8 @@ private static SecureNativeOptions getOptions(Properties properties) {
96104
.withAutoSend(Utils.parseBooleanOrDefault(getPropertyOrEnvOrDefault(properties, "SECURENATIVE_AUTO_SEND", defaultOptions.getAutoSend()), defaultOptions.getAutoSend()))
97105
.withDisable(Utils.parseBooleanOrDefault(getPropertyOrEnvOrDefault(properties, "SECURENATIVE_DISABLE", defaultOptions.getDisabled()), defaultOptions.getDisabled()))
98106
.withLogLevel(getPropertyOrEnvOrDefault(properties, "SECURENATIVE_LOG_LEVEL", defaultOptions.getLogLevel()))
99-
.withFailoverStrategy(FailoverStrategy.fromString(getPropertyOrEnvOrDefault(properties, "SECURENATIVE_FAILOVER_STRATEGY", defaultOptions.getFailoverStrategy()), defaultOptions.getFailoverStrategy()));
100-
107+
.withFailoverStrategy(FailoverStrategy.fromString(Objects.requireNonNull(getPropertyOrEnvOrDefault(properties, "SECURENATIVE_FAILOVER_STRATEGY", defaultOptions.getFailoverStrategy())), defaultOptions.getFailoverStrategy()))
108+
.withProxyHeaders(getPropertyListOrEnvOrDefault(properties, "SECURENATIVE_PROXY_HEADERS", defaultOptions.getProxyHeaders()));
101109
return builder.build();
102110
}
103111
}

src/main/java/com/securenative/config/SecureNativeConfigurationBuilder.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.securenative.enums.FailoverStrategy;
44

5+
import java.util.ArrayList;
6+
57
public class SecureNativeConfigurationBuilder {
68
/**
79
* Api Secret associated with SecureNative account
@@ -48,6 +50,11 @@ public class SecureNativeConfigurationBuilder {
4850
*/
4951
private FailoverStrategy failoverStrategy;
5052

53+
/**
54+
* Proxy Headers
55+
*/
56+
private ArrayList<String> proxyHeaders;
57+
5158
private SecureNativeConfigurationBuilder() {
5259
}
5360

@@ -61,7 +68,8 @@ public static SecureNativeConfigurationBuilder defaultConfigBuilder() {
6168
.withAutoSend(true)
6269
.withDisable(false)
6370
.withLogLevel("fatal")
64-
.withFailoverStrategy(FailoverStrategy.FAIL_OPEN);
71+
.withFailoverStrategy(FailoverStrategy.FAIL_OPEN)
72+
.withProxyHeaders(new ArrayList<>());
6573
}
6674

6775
public SecureNativeConfigurationBuilder withApiKey(String apiKey) {
@@ -109,8 +117,12 @@ public SecureNativeConfigurationBuilder withFailoverStrategy(FailoverStrategy fa
109117
return this;
110118
}
111119

120+
public SecureNativeConfigurationBuilder withProxyHeaders(ArrayList<String> proxyHeaders) {
121+
this.proxyHeaders = proxyHeaders;
122+
return this;
123+
}
112124

113125
public SecureNativeOptions build() {
114-
return new SecureNativeOptions(apiKey, apiUrl, interval, maxEvents, timeout, autoSend, disable, logLevel, failoverStrategy);
126+
return new SecureNativeOptions(apiKey, apiUrl, interval, maxEvents, timeout, autoSend, disable, logLevel, failoverStrategy, proxyHeaders);
115127
}
116128
}

src/main/java/com/securenative/config/SecureNativeOptions.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.securenative.enums.FailoverStrategy;
44

5+
import java.util.ArrayList;
6+
57
public class SecureNativeOptions {
68
/**
79
* Api Secret associated with SecureNative account
@@ -48,7 +50,12 @@ public class SecureNativeOptions {
4850
*/
4951
private final FailoverStrategy failoverStrategy;
5052

51-
public SecureNativeOptions(String apiKey, String apiUrl, int interval, int maxEvents, int timeout, boolean autoSend, boolean disable, String logLevel, FailoverStrategy failoverStrategy) {
53+
/**
54+
* Proxy Headers
55+
*/
56+
private final ArrayList<String> proxyHeaders;
57+
58+
public SecureNativeOptions(String apiKey, String apiUrl, int interval, int maxEvents, int timeout, boolean autoSend, boolean disable, String logLevel, FailoverStrategy failoverStrategy, ArrayList<String> proxyHeaders) {
5259
this.apiKey = apiKey;
5360
this.apiUrl = apiUrl;
5461
this.interval = interval;
@@ -58,6 +65,7 @@ public SecureNativeOptions(String apiKey, String apiUrl, int interval, int maxEv
5865
this.disable = disable;
5966
this.logLevel = logLevel;
6067
this.failoverStrategy = failoverStrategy;
68+
this.proxyHeaders = proxyHeaders;
6169
}
6270

6371
public String getApiKey() {
@@ -95,4 +103,8 @@ public String getLogLevel() {
95103
public FailoverStrategy getFailoverStrategy() {
96104
return failoverStrategy;
97105
}
106+
107+
public ArrayList<String> getProxyHeaders() {
108+
return proxyHeaders;
109+
}
98110
}

0 commit comments

Comments
 (0)