web-dev-qa-db-fra.com

Meilleure façon de définir les informations d'identification importantes dans le démarrage du printemps

Lors de l'utilisation de l'application Spring Boot, nous utilisons des fichiers application.properties différents selon les environnements. 

Nous avons mis des informations d'identification importantes telles que: les configurations de base de données, les adresses IP du serveur, le nom d'utilisateur/mot de passe de l'administrateur, etc.

Je m'inquiète de ce qui arriverait si quelqu'un obtenait nos propriétés d'application et obtenait tous les détails importants.

Existe-t-il une bonne approche pour placer les informations d'identification importantes quelque part et les obtenir dans notre application Spring Boot basée sur l'environnement?

9
Abhishek saini

Beaucoup de techniques

  • Utiliser des jetons de remplacement (maven replacor)

    application.properties spring.datasource.password=#MY_DB_PASSWORD#
    tokens.properties #MY_DB_PASSWORD#=SECRET_PASSWORD

    où tokens.properties a une protection d'accès

  • Utilisation de la variable d'environnement
    mvn spring-boot:run -Dspring.datasource.password=SECRET_PASSWORD

    ou simplement
    spring.datasource.password=${myDbPasswordEnv}

  • Utiliser Jaspyt pour chiffrer vos propriétés 

3
Halayem Anis

Une solution consiste à utiliser des variables d'environnement et des espaces réservés de propriétés dans les propriétés de l'application. Disons que vous voulez stocker le mot de passe de la base de données. Créez une variable d'environnement:

setx DEV_DB_PASS <your_dev_database_password>

Maintenant, dans le fichier de propriétés de l'application, vous pouvez accéder à cette valeur en tant que:

spring.datasource.password = ${DEV_DB_PASS}

Vous pouvez vous référer à la documentation officielle.

0
Prashant

Vous devriez utiliser Spring Cloud Config. Comme il convient le mieux pour gérer la configuration dans un emplacement central en utilisant un référentiel git ou similaire.

0
Gaurav Srivastav