Stackoverflow和其他站点上的许多开发人员建议将数据库密码存储在环境变量中。我们正在使用Spring Boot,我们想知道这是否真的是避免在application.properties文件中使用明文密码的好方法(安全且常见),即使在生产环境中也是如此?如果不是,更好的解决方案是什么?
请注意,DEV和PROD需要不同的.properties文件。
发布于 2018-11-15 08:22:54
我建议你去看看Spring Cloud Config
Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以集中管理所有环境中应用程序的外部属性。
功能:
春季云配置服务器功能:
用于外部配置的基于资源的
@EnableConfigServer
的Spring Boot应用程序中轻松实现对称或asymmetric)
Spring特性(用于应用程序):
使用远程属性sources
您可以找到配置服务器here的工作示例
发布于 2018-11-15 09:04:26
这完全取决于您部署应用程序的方式。Spring Boot使用特定的顺序来设置属性。请参阅:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
有不同的方法可以不让你的密码暴露太多,但它总是对有足够访问权限的人可见,如果他们知道去哪里看的话。
例如:如果您运行应用程序I docker,您可能希望将所有密码设置为环境变量。
但另一个示例是在启动应用程序时将它们设置为属性
$ java -jar myproject.jar --property=value
你必须选择最适合你需求的东西。
发布于 2018-11-15 09:34:00
您可以通过Spring Boot:https://projects.spring.io/spring-vault/使用云存储库,或者如果使用HashiCorp:https://cloud.spring.io/spring-cloud-vault/
https://stackoverflow.com/questions/53314933
复制相似问题