10. 自定义 Secret 后台实现
Spring Cloud Vault 随附对最常见后端集成的密钥后端支持。
你可以通过提供一个实现来集成任何类型的后端,该实现描述了如何从你想要使用的后端获取数据,以及如何通过提供一个PropertyTransformer来呈现该后端提供的数据。
添加一个后端的自定义实现需要实现两个接口:
-
org.springframework.cloud.vault.config.VaultSecretBackendDescriptor -
org.springframework.cloud.vault.config.SecretBackendMetadataFactory
VaultSecretBackendDescriptor 通常是一个持有配置数据的对象,如 VaultDatabaseProperties。Spring Cloud Vault 要求你的类型使用 @ConfigurationProperties 注解以从配置中实例化该类。
SecretBackendMetadataFactory 接受 VaultSecretBackendDescriptor 以创建实际的 SecretBackendMetadata 对象,该对象持有你在 Vault 服务器中的上下文路径,以及解析参数化上下文路径所需的任何路径变量和 PropertyTransformer。
两者,VaultSecretBackendDescriptor 和 SecretBackendMetadataFactory 类型都必须在 spring.factories 中注册,spring.factories 是 Spring 提供的扩展机制,类似于 Java 的 ServiceLoader。