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-spring-boot.git
The following commit(s) were added to refs/heads/main by this push:
new 371ca478073 CAMEL-20223 - Camel-Spring-Boot: Camel Azure Key Vault
should Support Azure Identity in the component and secrets function (#1041)
371ca478073 is described below
commit 371ca4780737b4d10ea24f6ab11d0a9495a7c117
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Dec 12 13:35:41 2023 +0100
CAMEL-20223 - Camel-Spring-Boot: Camel Azure Key Vault should Support Azure
Identity in the component and secrets function (#1041)
Signed-off-by: Andrea Cosentino <[email protected]>
---
.../springboot/catalog/components/azure-key-vault.json | 13 +++++++------
core/camel-spring-boot/src/main/docs/spring-boot.json | 7 +++++++
.../spring/boot/vault/AzureVaultAutoConfiguration.java | 1 +
.../boot/vault/AzureVaultConfigurationProperties.java | 18 ++++++++++++++++--
.../spring/boot/vault/AzureVaultConfigurationTest.java | 4 +++-
5 files changed, 34 insertions(+), 9 deletions(-)
diff --git
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/azure-key-vault.json
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/azure-key-vault.json
index 6e16812971f..480370934fd 100644
---
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/azure-key-vault.json
+++
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/azure-key-vault.json
@@ -31,11 +31,12 @@
},
"properties": {
"vaultName": { "index": 0, "kind": "path", "displayName": "Vault Name",
"group": "producer", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configuration", "description": "Vault Name to be used" },
- "operation": { "index": 1, "kind": "parameter", "displayName":
"Operation", "group": "producer", "label": "producer", "required": false,
"type": "object", "javaType":
"org.apache.camel.component.azure.key.vault.KeyVaultOperation", "enum": [
"createSecret", "getSecret", "deleteSecret", "purgeDeletedSecret" ],
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configu [...]
- "secretClient": { "index": 2, "kind": "parameter", "displayName": "Secret
Client", "group": "producer", "label": "", "required": false, "type": "object",
"javaType": "com.azure.security.keyvault.secrets.SecretClient", "deprecated":
false, "deprecationNote": "", "autowired": true, "secret": false,
"configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configuration", "description": "Instance of Secret
client" },
- "lazyStartProducer": { "index": 3, "kind": "parameter", "displayName":
"Lazy Start Producer", "group": "producer (advanced)", "label":
"producer,advanced", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "description": "Whether the producer should be started
lazy (on the first message). By starting lazy you can use this to allow
CamelContext and routes to startup in situations where a produc [...]
- "clientId": { "index": 4, "kind": "parameter", "displayName": "Client Id",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configuration", "description": "Client Id to be used" },
- "clientSecret": { "index": 5, "kind": "parameter", "displayName": "Client
Secret", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": true, "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configuration", "description": "Client Secret to be
used" },
- "tenantId": { "index": 6, "kind": "parameter", "displayName": "Tenant Id",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configuration", "description": "Tenant Id to be used" }
+ "credentialType": { "index": 1, "kind": "parameter", "displayName":
"Credential Type", "group": "common", "label": "common", "required": false,
"type": "object", "javaType":
"org.apache.camel.component.azure.key.vault.CredentialType", "enum": [
"CLIENT_SECRET", "AZURE_IDENTITY" ], "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "CLIENT_SECRET", "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "co [...]
+ "operation": { "index": 2, "kind": "parameter", "displayName":
"Operation", "group": "producer", "label": "producer", "required": false,
"type": "object", "javaType":
"org.apache.camel.component.azure.key.vault.KeyVaultOperation", "enum": [
"createSecret", "getSecret", "deleteSecret", "purgeDeletedSecret" ],
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configu [...]
+ "secretClient": { "index": 3, "kind": "parameter", "displayName": "Secret
Client", "group": "producer", "label": "", "required": false, "type": "object",
"javaType": "com.azure.security.keyvault.secrets.SecretClient", "deprecated":
false, "deprecationNote": "", "autowired": true, "secret": false,
"configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configuration", "description": "Instance of Secret
client" },
+ "lazyStartProducer": { "index": 4, "kind": "parameter", "displayName":
"Lazy Start Producer", "group": "producer (advanced)", "label":
"producer,advanced", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "description": "Whether the producer should be started
lazy (on the first message). By starting lazy you can use this to allow
CamelContext and routes to startup in situations where a produc [...]
+ "clientId": { "index": 5, "kind": "parameter", "displayName": "Client Id",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configuration", "description": "Client Id to be used" },
+ "clientSecret": { "index": 6, "kind": "parameter", "displayName": "Client
Secret", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": true, "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configuration", "description": "Client Secret to be
used" },
+ "tenantId": { "index": 7, "kind": "parameter", "displayName": "Tenant Id",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.azure.key.vault.KeyVaultConfiguration",
"configurationField": "configuration", "description": "Tenant Id to be used" }
}
}
diff --git a/core/camel-spring-boot/src/main/docs/spring-boot.json
b/core/camel-spring-boot/src/main/docs/spring-boot.json
index 0db136bc244..594f8f9298b 100644
--- a/core/camel-spring-boot/src/main/docs/spring-boot.json
+++ b/core/camel-spring-boot/src/main/docs/spring-boot.json
@@ -1606,6 +1606,13 @@
"description": "Define the secrets to look at",
"sourceType":
"org.apache.camel.spring.boot.vault.AwsVaultConfigurationProperties"
},
+ {
+ "name": "camel.vault.azure.azure-identity-enabled",
+ "type": "java.lang.Boolean",
+ "description": "Whether the Azure Identity Authentication should be used
or not.",
+ "sourceType":
"org.apache.camel.spring.boot.vault.AzureVaultConfigurationProperties",
+ "defaultValue": false
+ },
{
"name": "camel.vault.azure.blob-access-key",
"type": "java.lang.String",
diff --git
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AzureVaultAutoConfiguration.java
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AzureVaultAutoConfiguration.java
index 16621be1e6e..3524f565f9a 100644
---
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AzureVaultAutoConfiguration.java
+++
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AzureVaultAutoConfiguration.java
@@ -37,6 +37,7 @@ public class AzureVaultAutoConfiguration {
answer.setClientSecret(config.getClientSecret());
answer.setVaultName(config.getVaultName());
answer.setTenantId(config.getTenantId());
+ answer.setAzureIdentityEnabled(config.isAzureIdentityEnabled());
answer.setRefreshEnabled(config.isRefreshEnabled());
answer.setRefreshPeriod(config.getRefreshPeriod());
answer.setSecrets(config.getSecrets());
diff --git
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AzureVaultConfigurationProperties.java
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AzureVaultConfigurationProperties.java
index 492611bec93..329947360fc 100644
---
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AzureVaultConfigurationProperties.java
+++
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/vault/AzureVaultConfigurationProperties.java
@@ -41,7 +41,13 @@ public class AzureVaultConfigurationProperties {
* The tenant Id
*/
private String tenantId;
-
+
+
+ /**
+ * Whether the Azure Identity Authentication should be used or not.
+ */
+ private boolean azureIdentityEnabled;
+
/**
* Whether to automatically reload Camel upon secrets being updated in
Azure.
*/
@@ -108,7 +114,15 @@ public class AzureVaultConfigurationProperties {
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
-
+
+ public boolean isAzureIdentityEnabled() {
+ return azureIdentityEnabled;
+ }
+
+ public void setAzureIdentityEnabled(boolean azureIdentityEnabled) {
+ this.azureIdentityEnabled = azureIdentityEnabled;
+ }
+
public boolean isRefreshEnabled() {
return refreshEnabled;
}
diff --git
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/AzureVaultConfigurationTest.java
b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/AzureVaultConfigurationTest.java
index d42c964aec0..d0746694ddd 100644
---
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/AzureVaultConfigurationTest.java
+++
b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/vault/AzureVaultConfigurationTest.java
@@ -36,7 +36,8 @@ import org.springframework.test.annotation.DirtiesContext;
"camel.vault.azure.clientId=myClientId",
"camel.vault.azure.clientSecret=myClientSecret",
"camel.vault.azure.tenantId=myTenantId",
- "camel.vault.azure.eventhubConnectionString=connString"}
+ "camel.vault.azure.eventhubConnectionString=connString",
+ "camel.vault.azure.azureIdentityEnabled=true",}
)
public class AzureVaultConfigurationTest {
@@ -50,5 +51,6 @@ public class AzureVaultConfigurationTest {
Assertions.assertEquals("myClientId",
camelContext.getVaultConfiguration().azure().getClientId());
Assertions.assertEquals("myTenantId",
camelContext.getVaultConfiguration().azure().getTenantId());
Assertions.assertEquals("connString",
camelContext.getVaultConfiguration().azure().getEventhubConnectionString());
+ Assertions.assertEquals(true,
camelContext.getVaultConfiguration().azure().isAzureIdentityEnabled());
}
}