diff --git a/README.md b/README.md
index e40c6fc..17177d8 100644
--- a/README.md
+++ b/README.md
@@ -114,6 +114,7 @@ Here is a configuration example with a proxy for intranet addresses, and another
network:
proxy:
enable: true # allows disabling auto-config; enabled by default
+ alwaysPrint: false #allow the info log showing the proxy used every time a call is made
# explicit list of proxy servers with settings
servers:
diff --git a/pom.xml b/pom.xml
index db73c93..854662f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
com.orange.common
spring-boot-autoconfigure-proxy
- 1.0.2
+ 1.0.3
spring-boot-autoconfigure-proxy
Spring Boot AutoConfigure Proxy
diff --git a/src/main/java/com/orange/common/springboot/autoconfigure/proxy/MultiProxySelector.java b/src/main/java/com/orange/common/springboot/autoconfigure/proxy/MultiProxySelector.java
index 2e530ec..638585f 100644
--- a/src/main/java/com/orange/common/springboot/autoconfigure/proxy/MultiProxySelector.java
+++ b/src/main/java/com/orange/common/springboot/autoconfigure/proxy/MultiProxySelector.java
@@ -85,10 +85,13 @@ public int hashCode() {
private final List proxies;
+ private final boolean alwaysPrint;
+
private Map> hostname2Proxies = new HashMap<>();
- private MultiProxySelector(List proxies) {
+ private MultiProxySelector(List proxies, boolean alwaysPrint) {
this.proxies = proxies;
+ this.alwaysPrint = alwaysPrint;
}
@Override
@@ -126,7 +129,13 @@ public List select(URI uri) {
throw new IllegalArgumentException("protocol = " + protocol + " host = " + host);
}
- return hostname2Proxies.computeIfAbsent(new SchemeAndHost(protocol, host), this::doGetProxies);
+ SchemeAndHost schemeAndHost = new SchemeAndHost(protocol, host);
+ List proxiesList =
+ hostname2Proxies.computeIfAbsent(schemeAndHost, this::doGetProxies);
+ if (alwaysPrint) {
+ LOGGER.info("Proxies for [{}] : {}", schemeAndHost, proxiesList);
+ }
+ return proxiesList;
}
private List doGetProxies(SchemeAndHost schemeAndHost) {
@@ -151,7 +160,8 @@ public String toString() {
'}';
}
- static MultiProxySelector build(List proxies) {
+ static MultiProxySelector build(List proxies,
+ boolean alwaysPrint) {
List proxyEntries = new ArrayList<>();
for (int i = 0; i < proxies.size(); i++) {
NetworkProxyProperties.ProxyServerConfig cfg = proxies.get(i);
@@ -190,6 +200,6 @@ static MultiProxySelector build(List p
proxyEntries.add(new ProxyEntry(cfg, proxy, positiveMatchers, negativeMatchers));
}
- return new MultiProxySelector(proxyEntries);
+ return new MultiProxySelector(proxyEntries, alwaysPrint);
}
}
diff --git a/src/main/java/com/orange/common/springboot/autoconfigure/proxy/NetworkProxyAutoConfiguration.java b/src/main/java/com/orange/common/springboot/autoconfigure/proxy/NetworkProxyAutoConfiguration.java
index 0b346e5..012813f 100644
--- a/src/main/java/com/orange/common/springboot/autoconfigure/proxy/NetworkProxyAutoConfiguration.java
+++ b/src/main/java/com/orange/common/springboot/autoconfigure/proxy/NetworkProxyAutoConfiguration.java
@@ -38,7 +38,8 @@ public void setupProxyConfiguration() {
LOGGER.info("Configuring proxies from Spring Boot configuration");
// install proxy selector
- ProxySelector.setDefault(MultiProxySelector.build(properties.getServers()));
+ ProxySelector.setDefault(MultiProxySelector.build(properties.getServers(),
+ properties.isAlwaysPrint()));
// set password authentication for every proxy that need one
for (NetworkProxyProperties.ProxyServerConfig cfg : properties.getServers()) {
diff --git a/src/main/java/com/orange/common/springboot/autoconfigure/proxy/NetworkProxyProperties.java b/src/main/java/com/orange/common/springboot/autoconfigure/proxy/NetworkProxyProperties.java
index 85b2f22..3eca2e8 100644
--- a/src/main/java/com/orange/common/springboot/autoconfigure/proxy/NetworkProxyProperties.java
+++ b/src/main/java/com/orange/common/springboot/autoconfigure/proxy/NetworkProxyProperties.java
@@ -21,6 +21,11 @@ public class NetworkProxyProperties implements Validator {
*/
private boolean enabled = true;
+ /**
+ * Whether to enable the print of the proxy used every time.
+ */
+ private boolean alwaysPrint = false;
+
/**
* Explicit network proxy servers configuration
*/
@@ -43,10 +48,19 @@ public void setServers(List servers) {
this.servers = servers;
}
+ public boolean isAlwaysPrint() {
+ return alwaysPrint;
+ }
+
+ public void setAlwaysPrint(boolean alwaysPrint) {
+ this.alwaysPrint = alwaysPrint;
+ }
+
@Override
public String toString() {
return "NetworkProxyProperties{" +
"enabled=" + enabled +
+ ", alwaysPrint= " +alwaysPrint +
", servers=" + servers +
'}';
}