gpt4 book ai didi

maven - Spring Boot 的 application.properties 中没有明文密码

转载 作者:行者123 更新时间:2023-12-02 08:21:20 26 4
gpt4 key购买 nike

有类似的东西

security.user.password = plainTextPassword

在 Spring Boot 的 application.properties 中显然是一种反模式,因为它阻止将代码推送到公共(public) SCM。在我使用的非 Spring Boot 项目中

security.user.password = ${myPasswordFromMavenSettingsXML}

并放一个相应的<properties/>我的内部引用 pom.xml .使用 Maven 的资源过滤器插件,密码在构建时被替换,因此应用程序在构建和部署后可以访问实际的纯文本密码。

出于某种原因,Maven 的资源过滤器插件在这种情况下不起作用。有没有办法不向 SCM 提交纯文本密码并让 Spring Boot 在构建时插入它们?

最佳答案

Spring Boot 提供了多种机制externalized configuration .一些示例是命令行参数、环境变量以及打包 JAR 之外的应用程序属性。

我通常做的事情:

我们在本地配置了几个环境变量。大多数(如果不是全部)IDE 允许您从运行配置中配置环境变量。

例如,如果您不想公开 spring.datasource.password 属性,您可以设置一个名为 SPRING_DATASOURCE_PASSWORD 的环境变量。

当我们在另一个环境中部署时,我们通常选择在与应用程序 JAR/WAR 相同的文件夹中添加另一个 application.properties 或 application.yml 文件,因为 Spring boot 也会选择它。


另一个解决方案是使用 Spring cloud因为它有一个 config servic e 可以用作微服务来提供配置。配置也可以使用 SCM 进行版本控制,但您可以将其放在未连接到源代码的单独系统上。

关于maven - Spring Boot 的 application.properties 中没有明文密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36788861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com