Annotation Interface VaultPropertySource
VaultPropertySource to Spring's
Environment. To be used in
conjunction with
@Configuration
classes.
Example usage
Given a Vault path secret/my-application containing the
configuration data pair database.password=mysecretpassword, the
following @Configuration class uses @VaultPropertySource to
contribute secret/my-application to the Environment's set of
PropertySources.
@Configuration
@VaultPropertySource("secret/my-application")
public class AppConfig {
@Autowired
Environment env;
@Bean
public TestBean testBean() {
TestBean testBean = new TestBean();
testBean.setPassword(env.getProperty("database.password"));
return testBean;
}
}
Notice that the Environment object is
@Autowired
into the configuration class and then used when populating the
TestBean object. Given the configuration above, a call to
testBean.getPassword() will return "mysecretpassword".
In certain situations, it may not be possible or practical to tightly
control property source ordering when using @VaultPropertySource
annotations. For example, if the @Configuration classes above were
registered via component-scanning, the ordering is difficult to predict. In
such cases - and if overriding is important - it is recommended that the user
fall back to using the programmatic PropertySource API. See
ConfigurableEnvironment and
MutablePropertySources javadocs for
details.
- Author:
- Mark Paluch
- See Also:
-
Nested Class Summary
Nested Classes -
Required Element Summary
Required Elements -
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionbooleanIndicate if failure to find thesecretsshould be ignored.Property name prefix for properties obtained from Vault.Configure lease renewal/rotation.Configure the name of theVaultTemplatebean to be used with the property sources.
-
Element Details
-
value
String[] valueIndicate the Vault path(s) of the secret to be retrieved. For example,"secret/myapp"or"secret/my-application/profile".Each location will be added to the enclosing
Environmentas its own property source, and in the order declared.
-
-
-
propertyNamePrefix
String propertyNamePrefixProperty name prefix for properties obtained from Vault. All properties will be prefixed withpropertyNamePrefix.- Default:
- ""
-
ignoreSecretNotFound
boolean ignoreSecretNotFoundIndicate if failure to find thesecretsshould be ignored.true is appropriate if the secrets are completely optional. Default is true.
- Since:
- 2.2.
- Default:
- true
-
vaultTemplateRef
String vaultTemplateRefConfigure the name of theVaultTemplatebean to be used with the property sources.- Default:
- "vaultTemplate"
-
renewal
VaultPropertySource.Renewal renewalConfigure lease renewal/rotation.- Default:
- OFF
-