我们有一个使用spring-vault的应用程序。它使用 AppRole 对 Vault 进行身份验证。我们使用从该操作中获得的令牌来读取和写入秘密。VaultEndpoint
和的配置AppRoleAuthentication
是从属性文件自动配置的。
代码如下所示:
@Autowired
private ApplicationContext context;
@Autowired
private VaultOperations vault;
private Logger logger = LoggerFactory.getLogger(VaultFacade.class);
public VaultFacadeImpl() {
logger.debug("Creating VaultFacade with autowired context");
context = new AnnotationConfigApplicationContext(VaultConfig.class);
vault = context.getBean(VaultTemplate.class);
//vault variable ready to use with vault.read or vault.write
//in our VaultFacadeImpl
}
我想保留自动装配功能,但也支持另外两个 ClientAuthentication 实现:
- 现有的
TokenAuthentication
- 自定义
ClientAuthentication
实现(LDAP 身份验证后端)
最终结果将是同时提供两种身份验证机制。一些操作将使用应用程序的凭据(Vault 中的 AppRole)执行,其他操作将使用用户的凭据(Vault 中的 LDAP)执行。
我想我可以创建多个AbstractVaultConfiguration
类,每个类都返回不同的ClientAuthentication
导数。但是如何为配置类创建一个 VaultTemplate?