From 203ae8d092389e7def0270e1945e6fa4aed81607 Mon Sep 17 00:00:00 2001 From: Craig Day Date: Fri, 4 Oct 2019 18:43:31 +0800 Subject: [PATCH] Change the logic for mapping paths to engine versions to use path prefix instead of absolute path match --- build.gradle | 2 +- src/main/java/com/bettercloud/vault/api/Logical.java | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index eb08aa56..430243f7 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ apply plugin: 'checkstyle' group 'com.bettercloud' archivesBaseName = 'vault-java-driver' -version '5.0.0' +version '5.0.1' ext.isReleaseVersion = !version.endsWith('SNAPSHOT') // This project is actually limited to Java 8 compatibility. See below. diff --git a/src/main/java/com/bettercloud/vault/api/Logical.java b/src/main/java/com/bettercloud/vault/api/Logical.java index 1edb3937..f3ae0fe4 100644 --- a/src/main/java/com/bettercloud/vault/api/Logical.java +++ b/src/main/java/com/bettercloud/vault/api/Logical.java @@ -3,17 +3,15 @@ import com.bettercloud.vault.VaultConfig; import com.bettercloud.vault.VaultException; import com.bettercloud.vault.json.Json; -import com.bettercloud.vault.json.JsonArray; import com.bettercloud.vault.json.JsonObject; import com.bettercloud.vault.response.LogicalResponse; import com.bettercloud.vault.rest.Rest; import com.bettercloud.vault.rest.RestException; import com.bettercloud.vault.rest.RestResponse; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import java.util.Map; +import java.util.Map.Entry; import static com.bettercloud.vault.api.LogicalUtilities.adjustPathForDelete; import static com.bettercloud.vault.api.LogicalUtilities.adjustPathForList; @@ -626,9 +624,11 @@ public LogicalResponse upgrade(final String kvPath) throws VaultException { private Integer engineVersionForSecretPath(final String secretPath) { if (!this.config.getSecretsEnginePathMap().isEmpty()) { - return this.config.getSecretsEnginePathMap().containsKey(secretPath + "/") ? - Integer.valueOf(this.config.getSecretsEnginePathMap().get(secretPath + "/")) - : this.config.getGlobalEngineVersion(); + for (Entry entry : this.config.getSecretsEnginePathMap().entrySet()) { + if (secretPath.startsWith(entry.getKey())) { + return Integer.valueOf(entry.getValue()); + } + } } return this.config.getGlobalEngineVersion(); }