如何查看Spring Cloud Vault中VaultTemplate的KV引擎版本?

问题描述 投票:0回答:1

我们需要支持KV引擎v1和v2。 我们如何找出应该使用哪个版本

ops
:

val ops = vaultTemplate.opsForKeyValue(path, VaultKeyValueOperationsSupport.KeyValueBackend.???)

isVersioned(String path)
中的Spring Vault Core内部有
org.springframework.vault.core.util.KeyValueDelegate
方法,但未公开使用。

java spring kotlin spring-cloud-vault-config
1个回答
0
投票

尝试创建一个实用方法 -确定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);
© www.soinside.com 2019 - 2024. All rights reserved.