我们需要支持KV引擎v1和v2。 我们如何找出应该使用哪个版本
ops
:
val ops = vaultTemplate.opsForKeyValue(path, VaultKeyValueOperationsSupport.KeyValueBackend.???)
isVersioned(String path)
中的Spring Vault Core内部有org.springframework.vault.core.util.KeyValueDelegate
方法,但未公开使用。
尝试创建一个实用方法 -确定KVBackend
KeyValueBackend determineKVVersion(String path) {
if (KeyValueDelegate.isVersioned(path)) {
return KeyValueBackend.KV_2;
} else {
return KeyValueBackend.KV_1;
}
}
在调用 `opsForKeyValue' 之前,尝试根据环境配置或代码逻辑中的参数获取密钥
KeyValueBackend dynamicEngine = VaultUtils.determineKVVersion(path);
VaultKeyValueOperationsSupport.KeyValueBackend ops = vaultTemplate.opsForKeyValue(path, kvBackend);