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?
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'environnementmvn spring-boot:run -Dspring.datasource.password=SECRET_PASSWORD
ou simplementspring.datasource.password=${myDbPasswordEnv}
Utiliser Jaspyt pour chiffrer vos propriétés
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.
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.