This library provides smooth integration between Hashicorp's Vault and Netflix's Governator (Guice), allowing you to store and retrieve your application configuration transparently from the vault.
Up ahead on the roadmap :
- More tests
- More examples
- Better support for token renewals
- Multiple secrets/namespaces support
- Different auth-backends support (currently, only App-Role is supported).
- Nested data-structures (???)
Artifacts are available in maven central.
<dependency>
<groupId>org.sheinbergon</groupId>
<artifactId>governator-vault</artifactId>
<version>1.17.4</version>
</dependency>
compile "org.sheinbergon:governator-vault:1.17.4"
BootstrapModule bootstrapModule = new VaultConfigurationProviderBoostrapModule(
SECRET_PATH,VARIABLE_VALUES,
VaultConfigBuilder
.start()
.token(VAULT_TOKEN)
.address(VAULT_URL)
.build();
vaultConfig());
Where :
SECRET_PATH
- Path to the vault secret stroing all of the configuration parameters ( WITHOUT leading '/')VARIABLE_VALUES
- AMap<String,String>
of dynamic configuration variables as described hereVAULT_TOKEN
- Vault access token (GUID), as provided/generated by the vault overseerVAULT_URL
- Vault access url.
LifeCycleInjector injector = LifecycleInjector.builder().
withBootstrapModule(bootstrapModule).
withModules(...).
requiringExplicitBindings().
build().
createInjector();
LifecycleManager manager = injector.getInstance(LifecycleManager.class);
manager.start();