Checks if config client enabled in isResolvable().

This commit is contained in:
spencergibb
2020-09-11 10:04:58 -04:00
parent 73477d2365
commit eb60b4ffcc
3 changed files with 17 additions and 3 deletions

View File

@@ -96,7 +96,12 @@ public abstract class AbstractConfigDataLocationResolver<L extends AbstractConfi
public boolean isResolvable(ConfigDataLocationResolverContext context,
String location) {
return location.startsWith(getPrefix());
if (!location.startsWith(getPrefix())) {
return false;
}
return context.getBinder()
.bind(ConfigClientProperties.PREFIX + ".enabled", Boolean.class)
.orElse(true);
}
protected String getPrefix() {

View File

@@ -53,7 +53,8 @@ public class ConfigServiceBootstrapConfiguration {
@Bean
@ConditionalOnMissingBean(ConfigServicePropertySourceLocator.class)
@ConditionalOnProperty(value = "spring.cloud.config.enabled", matchIfMissing = true)
@ConditionalOnProperty(name = ConfigClientProperties.PREFIX + ".enabled",
matchIfMissing = true)
public ConfigServicePropertySourceLocator configServicePropertySource(
ConfigClientProperties properties) {
ConfigServicePropertySourceLocator locator = new ConfigServicePropertySourceLocator(
@@ -61,7 +62,7 @@ public class ConfigServiceBootstrapConfiguration {
return locator;
}
@ConditionalOnProperty("spring.cloud.config.fail-fast")
@ConditionalOnProperty(ConfigClientProperties.PREFIX + ".fail-fast")
@ConditionalOnClass({ Retryable.class, Aspect.class, AopAutoConfiguration.class })
@Configuration(proxyBeanMethods = false)
@EnableRetry(proxyTargetClass = true)

View File

@@ -26,6 +26,7 @@ import org.springframework.mock.env.MockEnvironment;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class ConfigServerConfigDataLocationResolverTests {
@@ -43,6 +44,7 @@ public class ConfigServerConfigDataLocationResolverTests {
this.environment = new MockEnvironment();
this.environmentBinder = Binder.get(this.environment);
this.resolver = new ConfigServerConfigDataLocationResolver(new DeferredLog());
when(context.getBinder()).thenReturn(environmentBinder);
}
@Test
@@ -55,4 +57,10 @@ public class ConfigServerConfigDataLocationResolverTests {
assertThat(this.resolver.isResolvable(this.context, "configserver:")).isTrue();
}
@Test
void isResolvableReturnsFalseWhenDisabled() {
this.environment.setProperty(ConfigClientProperties.PREFIX + ".enabled", "false");
assertThat(this.resolver.isResolvable(this.context, "configserver:")).isFalse();
}
}