Tous les produits
Search
Centre de documentation

Key Management Service:Client JDBC pour Secrets Manager

Dernière mise à jour :Aug 09, 2026

Lors de la connexion à une base de données via JDBC, vous pouvez stocker vos identifiants dans un secret RDS ou un secret générique. Votre application peut ensuite utiliser le client JDBC pour Secrets Manager afin de s'authentifier auprès de la base de données en récupérant le secret depuis KMS.

Présentation du SDK

Le client JDBC pour Secrets Manager est conçu pour se connecter aux bases de données via JDBC. Il simplifie l'intégration en récupérant automatiquement un secret depuis KMS pour authentifier la connexion à la base de données. Pour les autres scénarios impliquant la récupération et l'utilisation de secrets, nous recommandons d'utiliser d'abord le client pour Secrets Manager, puis le SDK pour instance KMS et le SDK Alibaba Cloud. Pour plus d'informations, consultez la section Référence du SDK.

Remarque

Vous ne pouvez gérer les secrets qu'en utilisant le SDK Alibaba Cloud.

Le client JDBC pour Secrets Manager offre les fonctionnalités suivantes :

  • Prise en charge de Java Database Connectivity (JDBC), y compris les connexions utilisant des pools de connexions à la base de données (tels que c3p0 et DBCP) et des sources de données.

  • Compatibilité avec quatre types de bases de données : MySQL, SQL Server, PostgreSQL et MariaDB.

  • Possibilité de personnaliser les intervalles d'actualisation des secrets.

Remarques importantes

  • Types de secrets pris en charge : secrets génériques et secrets RDS.

    • Si vous utilisez un secret RDS, nous vous recommandons d'utiliser un secret RDS géré avec double compte.

    • Si vous utilisez un secret générique, la valeur du secret doit respecter le format JSON suivant.

      {
          "AccountName":"<your-database-username>",
          "AccountPassword":"<your-database-password>"
      }
  • Langage de programmation pris en charge : Java 8 ou version ultérieure.

  • Pools de connexions à la base de données pris en charge : c3p0, DBCP, HikariCP et Druid.

Étape 1 : Créer un identifiant d'accès

Scénario 1 : Récupérer des secrets via une passerelle partagée

Les types de réseau pris en charge sont le réseau public et le VPC. Cette méthode prend en charge les méthodes d'authentification basées sur RAM, telles que le rôle RAM d'instance ECS, RamRoleArn, un jeton STS et un AccessKey. Pour plus d'informations, consultez Gérer les identifiants d'accès.

Rôle RAM d'instance ECS

Un rôle RAM d'instance ECS vous permet d'obtenir un identifiant d'accès temporaire (jeton STS) depuis une instance ECS pour appeler les opérations API KMS, sans avoir à configurer de paire AccessKey.

Pour plus d'informations, consultez Rôles RAM d'instance.

  1. Connectez-vous à la console RAM et créez un rôle RAM pour un service Alibaba Cloud de confiance.

    • Type d'entité de confiance : sélectionnez Elastic Compute Service.

    • Entité de confiance : sélectionnez Elastic Compute Service (ECS).

  2. Accordez au rôle RAM les autorisations nécessaires pour accéder à KMS.

    • Méthode 1 : Configurer une politique basée sur l'identité

      Dans la colonne Actions du rôle RAM, cliquez sur Grant Permission pour attacher une politique d'autorisation système intégrée pour KMS au rôle RAM. Pour plus d'informations sur les politiques d'autorisation système pour KMS, consultez Politiques système pour KMS.

      Remarque

      Vous pouvez également créer des politiques d'autorisation personnalisées. Pour plus d'informations, consultez Créer une politique personnalisée.

    • Méthode 2 : Configurer une politique basée sur les ressources

      KMS prend en charge les politiques basées sur les ressources qui accordent des autorisations d'accès pour des clés et des secrets individuels. Vous pouvez utiliser ces politiques pour contrôler quels comptes Alibaba Cloud, utilisateurs RAM et rôles RAM peuvent gérer ou utiliser les clés et secrets KMS. Pour plus d'informations, consultez Politiques de clé et Politiques de secret.

  3. Connectez-vous à la console ECS et attachez le rôle RAM à une instance ECS.image

RamRoleArn

Les utilisateurs RAM ou les services cloud peuvent endosser un rôle pour obtenir des autorisations temporaires (jeton STS) au lieu d'utiliser des clés à long terme, ce qui réduit le risque de fuite de clés. Par exemple, dans le cadre d'une tâche temporaire de traitement des données, un utilisateur RAM ou un service cloud endosse temporairement un rôle avec un RamRoleArn spécifique. Une fois la tâche terminée, les autorisations du rôle sont révoquées, minimisant ainsi le risque d'exposition.

  1. Créer une paire AccessKey utilisateur

    1. Connectez-vous à la console RAM. Dans le volet de navigation de gauche, choisissez Identities > Users. Sur la page Users, cliquez sur le nom de l'utilisateur RAM cible.

    2. Attachez la politique système AliyunSTSAssumeRoleAccess ou une politique personnalisée incluant l'action sts:AssumeRole à l'utilisateur RAM.

    3. Sur l'onglet Authentication, dans la section AccessKey, cliquez sur Create AccessKey et suivez les instructions à l'écran.

  2. Créer et autoriser un rôle RAM :

    1. Dans le volet de navigation de gauche, choisissez Identities > Roles. Sur la page Roles, cliquez sur Create Role. Pour plus d'informations, consultez Créer un rôle RAM.

    2. Accordez au rôle RAM les autorisations nécessaires pour accéder à KMS.

      • Méthode 1 : Configurer une politique basée sur l'identité

        Dans la colonne Actions du rôle RAM, cliquez sur Grant Permission pour attacher une politique d'autorisation système intégrée pour KMS au rôle RAM. Pour plus d'informations sur les politiques d'autorisation système pour KMS, consultez Politiques système pour KMS.

        Remarque

        Vous pouvez également créer des politiques d'autorisation personnalisées. Pour plus d'informations, consultez Créer une politique personnalisée.

      • Méthode 2 : Configurer une politique basée sur les ressources

        KMS prend en charge les politiques basées sur les ressources qui accordent des autorisations d'accès pour des clés et des secrets individuels. Vous pouvez utiliser ces politiques pour contrôler quels comptes Alibaba Cloud, utilisateurs RAM et rôles RAM peuvent gérer ou utiliser les clés et secrets KMS. Pour plus d'informations, consultez Politiques de clé et Politiques de secret.

  3. Obtenez le RamRoleArn du rôle RAM cible. Pour plus d'informations, consultez Afficher les informations d'un rôle RAM.

    1. Dans le volet de navigation de gauche, choisissez Identities > Roles. Sur la page Roles, cliquez sur le nom du rôle cible.

    2. Sur la page des détails du rôle, localisez le RamRoleArn dans la section ARN.

      Remarque

      Le RamRoleArn correspond au nom de ressource Alibaba Cloud (ARN) du rôle RAM à endosser. Le format est acs:ram::$accountID:role/$roleName, où $accountID représente l'ID du compte Alibaba Cloud et $roleName le nom du rôle RAM.

Jeton STS

Le service Security Token Service (STS) émet un identifiant d'accès temporaire, appelé jeton STS, à un utilisateur RAM ou à un rôle RAM. Ce jeton permet d'accéder à KMS avec des autorisations spécifiques pendant une période de validité limitée. À l'expiration du jeton, celui-ci devient automatiquement invalide.

  1. Connectez-vous à la console RAM pour créer un utilisateur RAM ou un rôle RAM. Pour plus d'informations, consultez Créer un utilisateur RAM et Créer un rôle RAM.

  2. Accordez l'autorisation AliyunSTSAssumeRoleAccess à l'utilisateur RAM ou au rôle RAM. Pour plus d'informations, consultez Gérer les autorisations des utilisateurs RAM et Accorder des autorisations à un rôle RAM.

  3. Accordez à l'utilisateur RAM ou au rôle RAM les autorisations nécessaires pour accéder à KMS.

    • Méthode 1 : Configurer une politique basée sur l'identité

      Dans la colonne Actions du rôle RAM ou de l'utilisateur, cliquez sur Grant Permission pour attacher une politique d'autorisation système intégrée pour KMS. Pour plus d'informations sur les politiques d'autorisation système pour KMS, consultez Politiques système pour KMS.

      Remarque

      Vous pouvez également créer des politiques d'autorisation personnalisées. Pour plus d'informations, consultez Créer une politique personnalisée.

    • Méthode 2 : Configurer une politique basée sur les ressources

      KMS prend en charge les politiques basées sur les ressources qui accordent des autorisations d'accès pour des clés et des secrets individuels. Vous pouvez utiliser ces politiques pour contrôler quels comptes Alibaba Cloud, utilisateurs RAM et rôles RAM peuvent gérer ou utiliser les clés et secrets KMS. Pour plus d'informations, consultez Politiques de clé et Politiques de secret.

  4. Utilisez l'utilisateur RAM ou le rôle RAM pour appeler l'opération STS AssumeRole afin d'obtenir un identifiant d'accès STS temporaire. Pour plus d'informations, consultez AssumeRole.

AccessKey

Avertissement

Par défaut, un compte Alibaba Cloud dispose d'autorisations d'administrateur pour toutes les ressources, lesquelles ne peuvent pas être modifiées. Pour garantir la sécurité des ressources, nous vous recommandons d'utiliser un utilisateur RAM pour créer une paire AccessKey et de lui accorder uniquement les autorisations nécessaires.

  1. Connectez-vous à la console RAM. Sur la page Users, cliquez sur le nom de l'utilisateur RAM cible.

  2. Sur l'onglet Authentication, dans la section AccessKey, cliquez sur Create AccessKey et suivez les instructions à l'écran.

  3. Accordez à l'utilisateur RAM les autorisations nécessaires pour accéder à KMS.

    • Méthode 1 : Configurer une politique basée sur l'identité

      Dans la colonne Actions de l'utilisateur RAM, cliquez sur Grant Permission pour attacher une politique d'autorisation système intégrée pour KMS à l'utilisateur RAM. Pour plus d'informations sur les politiques d'autorisation système pour KMS, consultez Politiques système pour KMS.

      Remarque

      Vous pouvez également créer des politiques d'autorisation personnalisées. Pour plus d'informations, consultez Créer une politique personnalisée.

    • Méthode 2 : Configurer une politique basée sur les ressources

      KMS prend en charge les politiques basées sur les ressources qui accordent des autorisations d'accès pour des clés et des secrets individuels. Vous pouvez utiliser ces politiques pour contrôler quels comptes Alibaba Cloud, utilisateurs RAM et rôles RAM peuvent gérer ou utiliser les clés et secrets KMS. Pour plus d'informations, consultez Politiques de clé et Politiques de secret.

ClientKey (non recommandé)

  1. Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez Application Access > Multi-Cloud Access (formerly AAP).

  2. (Facultatif) Créez une règle réseau.

    Remarque

    La configuration d'une règle réseau pour restreindre l'accès par adresse IP source est facultative. Nous vous recommandons toutefois d'en configurer une pour renforcer la sécurité.

    1. Cliquez sur l'onglet Network Access Rules, puis cliquez sur Create Network Access Rule.

    2. Dans le panneau Create Network Access Rule, définissez le paramètre Network Type sur Public, saisissez les adresses IP sources autorisées dans le champ Allowed Source IP Addresses, puis cliquez sur OK.

  3. Créez une politique d'autorisations.

    1. Cliquez sur l'onglet Policies, puis cliquez sur Create Policy.

    2. Dans le panneau Create Policy, configurez les paramètres de la passerelle partagée comme décrit ci-dessous, puis cliquez sur OK.

      1. Scope : Shared KMS Gateway

      2. Accessible Resources : Sélectionnez les secrets auxquels vous souhaitez accéder.

      3. (Facultatif) Network Access Rules : Sélectionnez la règle réseau créée à l'étape précédente.

  4. Créez un point d'accès applicatif (AAP).

    1. Cliquez sur l'onglet Application Access, puis cliquez sur Create AAP.

    2. Dans le panneau Create AAP, définissez le paramètre Mode sur Standard Creation, puis configurez les paramètres comme indiqué ci-dessous.

      Parameter

      Description

      Authentication Method

      Sélectionnez ClientKey.

      Encryption Password

      Saisissez une chaîne de 8 à 64 caractères contenant des chiffres, des lettres et des caractères spéciaux : ~!@#$%^&*?_-.

      Validity Period

      Important

      Nous vous recommandons de définir la période de validité sur un an afin de réduire les risques de fuite de ClientKey. Veillez à faire pivoter le ClientKey avant son expiration pour éviter toute interruption de service. Pour plus d'informations, consultez la rubrique Rotation d'un ClientKey.

      Policies

      Sélectionnez la politique d'autorisations que vous avez créée à l'étape précédente.

    3. Cliquez sur OK. Le navigateur télécharge automatiquement le ClientKey. Ce dernier comprend les fichiers suivants :

      • Credential (ClientKeyContent) : Le nom de fichier par défaut est clientKey_****.json.

      • Mot de passe des identifiants (ClientKeyPassword) : Le nom de fichier par défaut est clientKey_****_Password.txt.

Scénario 2 : Récupérer des secrets à l'aide d'une passerelle dédiée (déconseillé)

Le type de réseau est un réseau privé KMS et ClientKey est le seul identifiant d'accès pris en charge.

Vous pouvez créer un ClientKey en utilisant le mode Création rapide ou Création standard. Pour plus d'informations sur les ClientKeys, consultez les rubriques Points d'accès aux applications et Créer un point d'accès aux applications.

  • Méthode 1 : Création rapide

    Cette méthode est pratique et efficace, ce qui la rend adaptée aux tests rapides et au développement. L'identifiant d'accès créé de cette manière dispose d'un accès complet à toutes les ressources de l'instance KMS.

    1. Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez Application Access > Multi-Cloud Access (formerly AAP).

    2. Sous l'onglet Application Access, cliquez sur Create AAP. Dans le panneau Create AAP, configurez les paramètres.


      Paramètre


      Description


      Mode


      Sélectionnez Quick Creation.


      Scope (KMS Instance)


      Sélectionnez l'instance KMS à laquelle votre application doit accéder.


      Application Access Point Name


      Saisissez un nom pour le point d'accès aux applications.


      Authentication Method


      Ce paramètre est défini sur ClientKey et ne peut pas être modifié.


      Algorithme de chiffrement des identifiants


      Sélectionnez l'algorithme de chiffrement utilisé pour chiffrer le ClientKey. Valeurs valides : TripleDES-CBC et RC2-CBC (par défaut).


      Default Permission Policy


      La valeur est key/* secret/* et ne peut pas être modifiée. Cela signifie que l'application peut accéder à toutes les clés et à tous les secrets de l'instance KMS spécifiée.

    3. Cliquez sur OK. Le navigateur télécharge automatiquement le ClientKey. Le ClientKey comprend les fichiers suivants :

      • Credential (ClientKeyContent) : Le nom de fichier par défaut est clientKey_****.json.

      • Mot de passe de l'identifiant (ClientKeyPassword) : Le nom de fichier par défaut est clientKey_****_Password.txt.

  • Méthode 2 : Création standard

    Si vous devez configurer des autorisations d'accès granulaires aux ressources, nous vous recommandons d'utiliser la méthode de création standard.

    1. Suivez les instructions de création standard décrites dans la rubrique Créer un point d'accès aux applications pour créer un ClientKey permettant d'accéder à la passerelle dédiée. Les principaux paramètres sont décrits ci-dessous :

      1. Lors de la configuration des règles réseau, sélectionnez Private pour le type de réseau.

      2. Lorsque vous configurez la portée de la règle d'autorisation, sélectionnez l'ID d'instance KMS correspondant.

    2. Après la création, votre navigateur télécharge automatiquement le ClientKey, qui comprend :

      • Credential (ClientKeyContent) : Le fichier est nommé clientKey_****.json par défaut.

      • Mot de passe de l'identifiant (ClientKeyPassword) : Le fichier est nommé clientKey_****_Password.txt par défaut.

Étape 2 : Installer le client

Installez le client JDBC pour les secrets à l'aide de Maven.

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-secretsmanager-jdbc</artifactId>
    <version>x.x.x</version>
</dependency>
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.x.x</version>
</dependency>
Remarque

Nous vous recommandons d'installer la dernière version du SDK. Pour plus d'informations sur l'installation et le code source, consultez aliyun-secretsmanager-jdbc.

Étape 3 : Initialiser le client avec secretsmanager.properties

Ajoutez un fichier de configuration nommé secretsmanager.properties à votre projet. Les paramètres à configurer varient selon le type d'identifiant d'accès utilisé.

AccessKey

## The type of the access credential.
credentials_type=ak
## The AccessKey ID.
credentials_access_key_id=#credentials_access_key_id#
## The AccessKey secret.
credentials_access_secret=#credentials_access_secret#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000

RamRoleArn

## The type of the access credential.
credentials_type=ram_role
## The AccessKey ID.
credentials_access_key_id=#credentials_access_key_id#
## The AccessKey secret.
credentials_access_secret=#credentials_access_secret#
## The session name of the access credential.
credentials_role_session_name=#credentials_role_session_name#
## The ARN of the RAM role.
credentials_role_arn=#credentials_role_arn#
## The policy of the access credential.
credentials_policy=#credentials_policy#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000

Rôle RAM d'instance ECS

## The type of the access credential.
credentials_type=ecs_ram_role
## The name of the ECS RAM role.
credentials_role_name=#credentials_role_name#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000

Jeton STS

## The type of the access credential.
credentials_type=sts
## The AccessKey ID.
credentials_access_key_id=#credentials_access_key_id#
## The AccessKey secret.
credentials_access_secret=#credentials_access_secret#
## The session name of the access credential.
credentials_role_session_name=#credentials_role_session_name#
## The ARN of the RAM role.
credentials_role_arn=#credentials_role_arn#
## The policy of the access credential.
credentials_policy=#credentials_policy#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000

ClientKey (passerelle partagée)

## The type of the access credential.
credentials_type=client_key
# The file path of the ClientKey.
client_key_private_key_path=#your client key private key file path#
## The decryption password of the ClientKey. You can read the password from an environment variable or a file.
client_key_password_from_env_variable=#your client key private key password environment variable name#
client_key_password_from_file_path=#your client key private key password file path#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
## The following configuration sets the secret refresh interval to 1 hour.
refresh_secret_ttl=3600000

ClientKey (passerelle dédiée)

Méthode 1 : Configurer le chemin du fichier


cache_client_dkms_config_info=[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromFilePath":"<your_password_file_path>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]
              

Méthode 2 : Configurer le mot de passe via une variable d'environnement


cache_client_dkms_config_info=[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]
              

Étape 4 : Se connecter à la base de données

Important

Les exemples ci-dessous indiquent uniquement les propriétés que vous devez modifier. Configurez les autres propriétés en fonction de vos besoins métier.

Se connecter à une base de données via JDBC

  • Base de données MySQL

    Remarque

    Remplacez #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCSample {
        public static void main(String[] args) throws Exception {
            // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver
            Class.forName("com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver");
            Connection connect = null;
            try {
                connect = DriverManager.getConnection("secrets-manager:mysql://<your-mysql-ip>:<your-mysql-port>/<your-database-name>", "#your-mysql-secret-name#","");
            } catch(SQLException e) {
                e.printStackTrace();
            }
        }
    }
  • Base de données SQL Server

    Remarque

    Remplacez #your-sqlserver-secret-name#, <your-sqlserver-ip>, <your-sqlserver-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCSqlServerSample {
    
        public static void main(String[] args) throws Exception{
            // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.MssqlSecretsManagerSimpleDriver
            Class.forName("com.aliyun.kms.secretsmanager.MssqlSecretsManagerSimpleDriver");
            Connection connect = null;
            try {
                connect = DriverManager.getConnection("secrets-manager:sqlserver://<your-sqlserver-ip>:<your-sqlserver-port>;databaseName=<your-database-name>", "#your-sqlserver-secret-name#", "");
            }  catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
  • Base de données PostgreSQL

    Remarque

    Remplacez #your-postgresql-secret-name#, <your-postgresql-ip>, <your-postgresql-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCPostgreSQLSample {
        public static void main(String[] args) throws Exception {
            // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.PostgreSQLSecretManagerSimpleDriver
            Class.forName("com.aliyun.kms.secretsmanager.PostgreSQLSecretManagerSimpleDriver");
            Connection connect = null;
            try {
                connect = DriverManager.getConnection("secrets-manager:postgresql://<your-postgresql-ip>:<your-postgresql-port>/<your-database-name>", "#your-postgresql-secret-name#", "");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
  • Base de données MariaDB

    Remarque

    Remplacez #your-mariadb-secret-name#, <your-mariadb-ip>, <your-mariadb-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCMarialDBSample {
    
    	public static void main(String[] args) throws Exception{
    		// Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.MariaDBSecretManagerSimpleDriver
    		Class.forName("com.aliyun.kms.secretsmanager.MariaDBSecretManagerSimpleDriver");
    		Connection connect = null;
    		try {
    			connect = DriverManager.getConnection("secrets-manager:mariadb://<your-mariadb-ip>:<your-mariadb-port>/<your-database-name>", "#your-mariadb-secret-name#", "");
    		}  catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
    }

Se connecter via un pool de connexions

Définissez les paramètres c3p0.user, c3p0.driverClass et c3p0.jdbcUrl dans le fichier de configuration c3p0.properties. Le paramètre c3p0.user correspond au nom du secret, c3p0.driverClass indique le nom de la classe du pilote JDBC des secrets Alibaba Cloud, et c3p0.jdbcUrl doit commencer par secrets-manager.

  • Base de données MySQL

    Remarque

    Remplacez #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

    c3p0.user=#your-mysql-secret-name#
    c3p0.driverClass=com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver
    c3p0.jdbcUrl=secrets-manager:mysql://<your-mysql-ip>:<your-mysql-port>/<your-database-name>
  • Base de données SQL Server

    Remarque

    Remplacez #your-sqlserver-secret-name#, <your-sqlserver-ip>, <your-sqlserver-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

    c3p0.user=#your-sqlserver-secret-name#
    c3p0.driverClass=com.aliyun.kms.secretsmanager.MssqlSecretsManagerSimpleDriver
    c3p0.jdbcUrl=secrets-manager:sqlserver://<your-sqlserver-ip>:<your-sqlserver-port>/<your-database-name>
  • Base de données PostgreSQL

    Remarque

    Remplacez #your-postgresql-secret-name#, <your-postgresql-ip>, <your-postgresql-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

    c3p0.user=#your-postgresql-secret-name#
    c3p0.driverClass=com.aliyun.kms.secretsmanager.PostgreSQLSecretManagerSimpleDriver
    c3p0.jdbcUrl=secrets-manager:postgresql://<your-postgresql-ip>:<your-postgresql-port>/<your-database-name>
  • Base de données MariaDB

    Remarque

    Remplacez #your-mariadb-secret-name#, <your-mariadb-ip>, <your-mariadb-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

    c3p0.user=#your-mariadb-secret-name#
    c3p0.driverClass=com.aliyun.kms.secretsmanager.MariaDBSecretManagerSimpleDriver
    c3p0.jdbcUrl=secrets-manager:mariadb://<your-mariadb-ip>:<your-mariadb-port>/<your-database-name>

Se connecter via une source de données

Cet exemple utilise une source de données ComboPooledDataSource c3p0 et une base de données MySQL. Ajoutez la configuration suivante au fichier de configuration Spring.

Remarque

Remplacez #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
      <property name="driverClass" value="com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver" />
      <property name="user" value="#your-mysql-secret-name#" />
      <property name="jdbcUrl" value="secrets-manager:mysql://<your-mysql-ip>:<your-mysql-port>/<your-database-name>" />
      <property name="maxPoolSize" value="***" />
      <property name="minPoolSize" value="***" />
      <property name="initialPoolSize" value="***" />
  </bean>
  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
      <property name="dataSource" ref="dataSource" />
  </bean>
Remarque

Définissez les valeurs des paramètres maxPoolSize, minPoolSize et initialPoolSize en fonction de vos besoins métier.

Connexion à l'aide d'un pool de connexions Druid

Cet exemple utilise une base de données MySQL. Vous devez modifier les propriétés suivantes dans le fichier de configuration.

Remarque

Remplacez #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port> et <your-database-name> par le nom réel du secret, l'adresse IP du serveur, le port et le nom de la base de données.

  • Utilisation d'un fichier de configuration properties

    username=#your-mysql-secret-name#
    driverClassName=com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver
    url=secrets-manager:mysql://<your-mysql-ip>:<your-mysql-port>/<your-database-name>
  • Utilisation de la configuration bean

    • Méthode 1 : Fichier de configuration XML

      <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
           <property name="username" value="${your-mysql-secret-name}" />
           <property name="driverClassName" value="com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver" />
           <property name="url" value="secrets-manager:mysql://<your-mysql-ip>:<your-mysql-port>/<your-database-name>" />
      </bean>
      
    • Méthode 2 : Injection de propriété

      Créez une classe de configuration dans votre application pour charger les informations de connexion à la base de données.

      @Configuration
      public class DataConfig {
      
          @Value("${your-mysql-secret-name}")
          private String username;
      
          @Value("com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver")
          private String driverClassName;
      
          @Value("secrets-manager:mysql://<your-mysql-ip>:<your-mysql-port>/<your-database-name>")
          private String url;
      
          @Bean(name = "dataSource",initMethod = "init",destroyMethod = "close")
          public DruidDataSource dataSource(){
              DruidDataSource druidDataSource = new DruidDataSource();
              druidDataSource.setUsername(username);
              druidDataSource.setDriverClassName(driverClassName);
              druidDataSource.setUrl(url);
              return druidDataSource;
          }
      }