Merge branch '2.2.x'
This commit is contained in:
@@ -71,7 +71,6 @@ import org.springframework.cloud.config.server.environment.SvnKitEnvironmentRepo
|
||||
import org.springframework.cloud.config.server.environment.VaultEnvironmentProperties;
|
||||
import org.springframework.cloud.config.server.environment.VaultEnvironmentRepository;
|
||||
import org.springframework.cloud.config.server.environment.VaultEnvironmentRepositoryFactory;
|
||||
import org.springframework.cloud.config.server.environment.vault.SpringVaultClientAuthenticationProvider;
|
||||
import org.springframework.cloud.config.server.environment.vault.SpringVaultClientConfiguration;
|
||||
import org.springframework.cloud.config.server.environment.vault.SpringVaultEnvironmentRepository;
|
||||
import org.springframework.cloud.config.server.environment.vault.SpringVaultEnvironmentRepositoryFactory;
|
||||
@@ -239,17 +238,9 @@ public class EnvironmentRepositoryConfiguration {
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@ConditionalOnClass(VaultTemplate.class)
|
||||
@Import(SpringVaultClientConfiguration.class)
|
||||
static class SpringVaultFactoryConfig {
|
||||
|
||||
@Bean
|
||||
public SpringVaultClientConfiguration vaultClientConfiguration(
|
||||
VaultEnvironmentProperties vaultProperties,
|
||||
ConfigTokenProvider tokenProvider,
|
||||
List<SpringVaultClientAuthenticationProvider> authProviders) {
|
||||
return new SpringVaultClientConfiguration(vaultProperties, tokenProvider,
|
||||
authProviders);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SpringVaultEnvironmentRepositoryFactory vaultEnvironmentRepositoryFactory(
|
||||
ObjectProvider<HttpServletRequest> request, EnvironmentWatch watch,
|
||||
|
||||
@@ -22,9 +22,11 @@ import java.util.List;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.cloud.config.server.environment.ConfigTokenProvider;
|
||||
import org.springframework.cloud.config.server.environment.VaultEnvironmentProperties;
|
||||
import org.springframework.cloud.config.server.environment.VaultEnvironmentProperties.AuthenticationMethod;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.client.ClientHttpRequestFactory;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -51,7 +53,9 @@ import org.springframework.web.util.UriComponentsBuilder;
|
||||
*
|
||||
* @author Scott Frederick
|
||||
*/
|
||||
public class SpringVaultClientConfiguration extends AbstractVaultConfiguration {
|
||||
@Configuration
|
||||
public class SpringVaultClientConfiguration extends AbstractVaultConfiguration
|
||||
implements InitializingBean {
|
||||
|
||||
private static final String VAULT_PROPERTIES_PREFIX = "spring.cloud.config.server.vault.";
|
||||
|
||||
@@ -59,7 +63,7 @@ public class SpringVaultClientConfiguration extends AbstractVaultConfiguration {
|
||||
|
||||
private final ConfigTokenProvider configTokenProvider;
|
||||
|
||||
private final RestOperations externalRestOperations;
|
||||
private RestOperations externalRestOperations;
|
||||
|
||||
private final Log log = LogFactory.getLog(getClass());
|
||||
|
||||
@@ -72,7 +76,10 @@ public class SpringVaultClientConfiguration extends AbstractVaultConfiguration {
|
||||
this.vaultProperties = vaultProperties;
|
||||
this.configTokenProvider = configTokenProvider;
|
||||
this.authProviders = authProviders;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
this.externalRestOperations = new RestTemplate(
|
||||
clientHttpRequestFactoryWrapper().getClientHttpRequestFactory());
|
||||
}
|
||||
|
||||
@@ -26,6 +26,11 @@ import java.util.List;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.context.annotation.UserConfigurations;
|
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
|
||||
import org.springframework.cloud.config.server.config.ConfigServerAutoConfiguration;
|
||||
import org.springframework.cloud.config.server.config.ConfigServerConfiguration;
|
||||
import org.springframework.cloud.config.server.environment.VaultEnvironmentProperties;
|
||||
import org.springframework.cloud.config.server.environment.vault.SpringVaultClientConfiguration.ConfigTokenProviderAuthentication;
|
||||
import org.springframework.cloud.config.server.environment.vault.authentication.AppRoleClientAuthenticationProvider;
|
||||
@@ -40,6 +45,7 @@ import org.springframework.cloud.config.server.environment.vault.authentication.
|
||||
import org.springframework.cloud.config.server.environment.vault.authentication.PcfClientAuthenticationProvider;
|
||||
import org.springframework.cloud.config.server.environment.vault.authentication.TokenClientAuthenticationProvider;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.vault.authentication.AppRoleAuthentication;
|
||||
import org.springframework.vault.authentication.AwsEc2Authentication;
|
||||
import org.springframework.vault.authentication.AwsIamAuthentication;
|
||||
@@ -284,11 +290,31 @@ class SpringVaultClientConfigurationTests {
|
||||
|
||||
private SpringVaultClientConfiguration getConfiguration(
|
||||
VaultEnvironmentProperties properties) {
|
||||
return new SpringVaultClientConfiguration(properties, () -> null, authProviders);
|
||||
SpringVaultClientConfiguration configuration = new SpringVaultClientConfiguration(
|
||||
properties, () -> null, authProviders);
|
||||
configuration.afterPropertiesSet();
|
||||
return configuration;
|
||||
}
|
||||
|
||||
private String base64(String value) {
|
||||
return new String(Base64.getEncoder().encode(value.getBytes()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void springVaultClientConfigurationIsAProxy() {
|
||||
new WebApplicationContextRunner()
|
||||
.withPropertyValues("spring.profiles.active=vault")
|
||||
.withConfiguration(UserConfigurations.of(ConfigServerConfiguration.class))
|
||||
.withConfiguration(
|
||||
AutoConfigurations.of(ConfigServerAutoConfiguration.class))
|
||||
.run(context -> {
|
||||
assertThat(context).getBean(SpringVaultClientConfiguration.class)
|
||||
.isNotNull()
|
||||
.matches(svcc -> ClassUtils
|
||||
.isCglibProxyClassName(svcc.getClass().getName()),
|
||||
"is a proxy");
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user