对于开发环境,我已配置bootstrap.properties
以禁用保管库配置。
spring.cloud.vault.enabled=false
如果禁用它,则应用程序应从本地config application.properties文件中读取属性。但是怎么做呢?
作为解决方法,我在application.properties
中定义了本地属性,如下所示
xyz.db.user=${xyz.db.user.fromVault:test}
xyz.db.password=${xyz.db.password.fromVault:test}
因此,应用程序首先检查是否在Vault中配置了xyz.db.user.fromVault
属性。如果没有,请将xyz.db.user
设置为test
但这不是一种正确的方法,因为我需要维护多个属性。有没有正确的方法?
答案 0 :(得分:1)
取决于。
为配置属性提供回退值通常是处理默认值的好方法。如果你只有其中的几个,那么你可以使用这种方法。
然而,有一点需要注意:
存储在Vault中的数据在某种程度上取决于环境,通常是敏感的(用户名,密码)。您希望将这些内容存储在代码中,甚至存储在属性文件中。
您可以拥有一个单独的属性文件(例如,由配置文件分隔),其中包含非Vault环境的值,但实际问题是,您为什么要提供默认值?
如果您有一个需要凭据的远程数据库,您可能想问自己一个问题:如果这些凭据暴露给非预期的第三方,会造成多大的损害?如果您的答案是:不多,那么将这些凭据存储在配置文件绑定的属性文件中是可行的方法。如果疼得厉害,那么我会看到两个选择: