### Description

Support mounting to multiple namespaces with the Hashicorp Vault Secrets Back-end

### Use case/motivation

As a data engineer I wish to utilize secrets stored in multiple mount paths (to support connecting to multiple namespaces)  without having to mount to a higher up namespace.

### Related issues

_No response_

### Are you willing to submit a PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

self, secret_path: str, secret_version: int | None = None
    ) -> dict | None:
        """
        Reads secret including metadata. It is only valid for KV version 2.
        See https://hvac.readthedocs.io/en/stable/usage/secrets_engines/kv_v2.html for details.
        :param secret_path: The path of the secret.
        :param secret_version: Specifies the version of Secret to return. If not set, the latest
            version is returned. (Can only be used in case of version 2 of KV).
        :return: The key info. This is a Dict with "data" mapping keeping secret
                 and "metadata" mapping keeping metadata of the secret.
        """
        if self.kv_engine_version == 1:
            raise VaultError("Metadata might only be used with version 2 of the KV engine.")
        try:
            return self.client.secrets.kv.v2.read_secret_version(
                path=secret_path, mount_point=self.mount_point, version=secret_version
            )
        except InvalidPath:
            self.log.debug(
                "Secret not found %s with mount point %s and version %s",
                secret_path,
                self.mount_point,
                secret_version,
            )
            return None
    def create_or_update_secret(
        self, secret_path: str, secret: dict, method: str | None = None, cas: int | None = None