[ 
https://issues.apache.org/jira/browse/CAMEL-25553?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-25553:
--------------------------------
    Description: 
The vault properties functions are single instances shared by all threads, as 
properties can be resolved at runtime from many threads (for example 
${properties:aws:...}).

* They keep the names of the resolved secrets in a plain HashSet that every 
lookup adds to, and the secret refresh tasks iterate it from another thread 
(risk of ConcurrentModificationException and lost entries).
* camel-ibm-secrets-manager IBMSecretsManagerPropertiesFunction keeps the 
secret group of a lookup in an instance field, so concurrent lookups can read 
the secret from another group, and a lookup without a group reuses the group of 
the previous lookup.

camel-hashicorp-vault has the same issues; see CAMEL-25518 and CAMEL-25552 for 
its engine field.

  was:
The vault properties functions are single instances shared by all threads, as 
properties can be resolved at runtime from many threads (for example 
${properties:aws:...}).

* They keep the names of the resolved secrets in a plain HashSet that every 
lookup adds to, and the secret refresh tasks iterate it from another thread 
(risk of ConcurrentModificationException and lost entries).
* camel-ibm-secrets-manager IBMSecretsManagerPropertiesFunction keeps the 
secret group of a lookup in an instance field, so concurrent lookups can read 
the secret from another group, and a lookup without a group reuses the group of 
the previous lookup.

camel-hashicorp-vault has the same issues; see CAMEL-25518 and the related 
ticket for its engine field.


> camel-aws-secrets-manager, camel-azure-key-vault, 
> camel-google-secret-manager, camel-ibm-secrets-manager, camel-cyberark-vault 
> - properties functions are not thread safe
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-25553
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25553
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-aws2, camel-azure, camel-google
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.23.0
>
>
> The vault properties functions are single instances shared by all threads, as 
> properties can be resolved at runtime from many threads (for example 
> ${properties:aws:...}).
> * They keep the names of the resolved secrets in a plain HashSet that every 
> lookup adds to, and the secret refresh tasks iterate it from another thread 
> (risk of ConcurrentModificationException and lost entries).
> * camel-ibm-secrets-manager IBMSecretsManagerPropertiesFunction keeps the 
> secret group of a lookup in an instance field, so concurrent lookups can read 
> the secret from another group, and a lookup without a group reuses the group 
> of the previous lookup.
> camel-hashicorp-vault has the same issues; see CAMEL-25518 and CAMEL-25552 
> for its engine field.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to