大家好!
这将是我第一次推出新开发的Spring Boot应用程序,我想知道是否有一种方法可以保护application.properties文件中写入的密码和其他敏感信息。
假设我们有以下行:
# PostgreSQL connection settings
spring.datasource.jdbc-url=jdbc:postgresql://localhost:5432/bdreminder
spring.datasource.username=username
spring.datasource.password=password
源代码将首先存储在GitHub上,将凭据存储在纯文本中似乎不是一个好主意。因此,我可能会将该文件添加到.gitignore文件中;我可以在主机上设置一些环境变量,但之后它将如何填充.properties文件?此外,在以后的缩放方面,这似乎相当麻烦
所以,基本上,我想看看在现实生活中是如何做到的:(
请帮忙:(
最简单的选项是创建一个profile specific
application.properties文件并激活该配置文件。例如,创建application-private.properties
并激活配置文件private
。当然,你必须注意不要提交这个文件。
或者,也可能是一个更安全的选择,是在项目之外定义一个文件,并使用以下行将其导入application.properties
中:
spring.config.import=file:../path/to/your/external.properties
Spring Boot对外部配置有广泛的支持。通常的方法是使用环境变量之一,由Kubernetes等平台提供的配置,或通过Spring Cloud Config使用专门的配置系统;这些都将机密(或者只是特定于环境的信息(完全隐藏在代码之外。它们还具有为不使用Spring Boot的其他应用程序提供通用配置风格的优点。