diff --git a/pom.xml b/pom.xml
index 8c998e67..31540bda 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
1.0.3.RELEASE
3.1.7-SNAPSHOT
3.2.8-SNAPSHOT
- 1.15.1
+ 1.17.6
diff --git a/spring-cloud-consul-config/src/main/java/org/springframework/cloud/consul/config/ConsulConfigDataLocationResolver.java b/spring-cloud-consul-config/src/main/java/org/springframework/cloud/consul/config/ConsulConfigDataLocationResolver.java
index 2bba719e..df8ede7d 100644
--- a/spring-cloud-consul-config/src/main/java/org/springframework/cloud/consul/config/ConsulConfigDataLocationResolver.java
+++ b/spring-cloud-consul-config/src/main/java/org/springframework/cloud/consul/config/ConsulConfigDataLocationResolver.java
@@ -212,9 +212,14 @@ public class ConsulConfigDataLocationResolver implements ConfigDataLocationResol
.bind(ConsulConfigProperties.PREFIX, Bindable.of(ConsulConfigProperties.class), bindHandler)
.orElseGet(ConsulConfigProperties::new);
- if (StringUtils.isEmpty(properties.getName())) {
+ if (!StringUtils.hasText(properties.getName())) {
properties.setName(binder.bind("spring.application.name", String.class).orElse("application"));
}
+
+ if (!StringUtils.hasText(properties.getAclToken())) {
+ properties.setAclToken(binder.bind("spring.cloud.consul.token", String.class)
+ .orElse(binder.bind("consul.token", String.class).orElse(null)));
+ }
return properties;
}
diff --git a/spring-cloud-consul-config/src/test/java/org/springframework/cloud/consul/config/ConsulConfigDataLocationResolverTests.java b/spring-cloud-consul-config/src/test/java/org/springframework/cloud/consul/config/ConsulConfigDataLocationResolverTests.java
index 7af3760c..cee033a4 100644
--- a/spring-cloud-consul-config/src/test/java/org/springframework/cloud/consul/config/ConsulConfigDataLocationResolverTests.java
+++ b/spring-cloud-consul-config/src/test/java/org/springframework/cloud/consul/config/ConsulConfigDataLocationResolverTests.java
@@ -22,6 +22,8 @@ import java.util.stream.Collectors;
import org.apache.commons.logging.LogFactory;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
import org.springframework.boot.BootstrapRegistry.InstanceSupplier;
import org.springframework.boot.DefaultBootstrapContext;
@@ -30,6 +32,7 @@ import org.springframework.boot.context.config.ConfigDataLocationResolverContext
import org.springframework.boot.context.config.Profiles;
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.cloud.consul.ConsulProperties;
+import org.springframework.core.env.SystemEnvironmentPropertySource;
import org.springframework.mock.env.MockEnvironment;
import org.springframework.web.util.UriComponents;
import org.springframework.web.util.UriComponentsBuilder;
@@ -81,6 +84,28 @@ public class ConsulConfigDataLocationResolverTests {
assertThat(properties.getPort()).isEqualTo(8502);
}
+ @ParameterizedTest
+ @ValueSource(strings = { "consul.token", "CONSUL_TOKEN", "spring.cloud.consul.token", "SPRING_CLOUD_CONSUL_TOKEN",
+ "spring.cloud.consul.config.acl-token" })
+ public void testLoadConfigProperties(String property) {
+ MockEnvironment mockEnvironment = new MockEnvironment();
+ String tokenValue = "mytoken";
+ if (property.contains("_")) {
+ SystemEnvironmentPropertySource envPS = new SystemEnvironmentPropertySource("mocksysenv",
+ Collections.singletonMap(property, tokenValue));
+ mockEnvironment.getPropertySources().addLast(envPS);
+ }
+ else {
+ mockEnvironment.setProperty(property, tokenValue);
+ }
+ Binder binder = Binder.get(mockEnvironment);
+ ConfigDataLocationResolverContext resolverContext = mock(ConfigDataLocationResolverContext.class);
+ when(resolverContext.getBinder()).thenReturn(binder);
+ when(resolverContext.getBootstrapContext()).thenReturn(new DefaultBootstrapContext());
+ ConsulConfigProperties properties = createResolver().loadConfigProperties(resolverContext);
+ assertThat(properties.getAclToken()).isEqualTo(tokenValue);
+ }
+
private List toContexts(List locations) {
return locations.stream().map(ConsulConfigDataResource::getContext).collect(Collectors.toList());
}