有类似在春季启动的application.properties没有明文密码
security.user.password = plainTextPassword
内春启动的application.properties
显然是一个反模式,因为它可以防止代码从推向公共SCM。在我的非春季启动项目,我用
security.user.password = $ {} myPasswordFromMavenSettingsXML
,并把我的pom.xml
内相应<properties/>
参考。 使用Maven的资源过滤器插件,密码在构建时被替换,以便应用程序在构建和部署后可以访问实际的纯文本密码。
由于某些原因,Maven的资源过滤器插件在这种情况下不起作用。有没有办法让不提供明文密码给SCM,让Spring Boot在构建时插入它们?
使用'-DSECURITY_USER_PASSWORD = password'工作,但我选择将'conf/application.properties'中的机密属性也用于不同的配置文件。此外,我使用'$ {random.value}'作为常规'application.properties'中的值,并通过Maven配置文件将'SECURITY_USER_PASSWORD'环境变量提供给实际部署到生产环境。 – Alex
为了处理不同的配置文件,我只在IDE中有多个运行配置,每个运行配置都有不同的环境变量。 – g00glen00b
这是本地可以完成的,但是如何在没有配置数据文件可以部署的远程服务器上执行该操作。因此我不能选择像'produdction-profile.properties'这样的东西。 – Alex