You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2022/07/13 12:47:13 UTC
[camel] 01/04: CAMEL-18208 - vault: allow to retrieve a specific secret version/revision - Azure Key Vault
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 396dc87f0ad0a3107cfbade9c1326a092aab7190
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Jul 13 11:54:26 2022 +0200
CAMEL-18208 - vault: allow to retrieve a specific secret version/revision - Azure Key Vault
---
.../key/vault/KeyVaultPropertiesFunction.java | 26 +++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultPropertiesFunction.java b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultPropertiesFunction.java
index e1d8c91bea2..506f4c3c203 100644
--- a/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultPropertiesFunction.java
+++ b/components/camel-azure/camel-azure-key-vault/src/main/java/org/apache/camel/component/azure/key/vault/KeyVaultPropertiesFunction.java
@@ -128,21 +128,41 @@ public class KeyVaultPropertiesFunction extends ServiceSupport implements Proper
String subkey = null;
String returnValue = null;
String defaultValue = null;
+ String version = null;
if (remainder.contains("/")) {
key = StringHelper.before(remainder, "/");
subkey = StringHelper.after(remainder, "/");
defaultValue = StringHelper.after(subkey, ":");
+ if (ObjectHelper.isNotEmpty(defaultValue)) {
+ if (defaultValue.contains("@")) {
+ version = StringHelper.after(defaultValue, "@");
+ defaultValue = StringHelper.before(defaultValue, "@");
+ }
+ }
if (subkey.contains(":")) {
subkey = StringHelper.before(subkey, ":");
}
+ if (subkey.contains("@")) {
+ version = StringHelper.after(subkey, "@");
+ subkey = StringHelper.before(subkey, "@");
+ }
} else if (remainder.contains(":")) {
key = StringHelper.before(remainder, ":");
defaultValue = StringHelper.after(remainder, ":");
+ if (remainder.contains("@")) {
+ version = StringHelper.after(remainder, "@");
+ defaultValue = StringHelper.before(defaultValue, "@");
+ }
+ } else {
+ if (remainder.contains("@")) {
+ key = StringHelper.before(remainder, "@");
+ version = StringHelper.after(remainder, "@");
+ }
}
if (key != null) {
try {
- returnValue = getSecretFromSource(key, subkey, defaultValue);
+ returnValue = getSecretFromSource(key, subkey, defaultValue, version);
} catch (JsonProcessingException e) {
throw new RuntimeCamelException("Something went wrong while recovering " + key + " from vault");
}
@@ -152,11 +172,11 @@ public class KeyVaultPropertiesFunction extends ServiceSupport implements Proper
}
private String getSecretFromSource(
- String key, String subkey, String defaultValue)
+ String key, String subkey, String defaultValue, String version)
throws JsonProcessingException {
String returnValue;
try {
- KeyVaultSecret secret = client.getSecret(key);
+ KeyVaultSecret secret = client.getSecret(key, (ObjectHelper.isNotEmpty(version) ? version : ""));
returnValue = secret.getValue();
if (ObjectHelper.isNotEmpty(subkey)) {
ObjectMapper mapper = new ObjectMapper();