Spring Boot隐藏或加密密码的最佳实践

时间:2018-06-18 19:02:34

标签: spring spring-boot

我已经使用Spring Framework大约4年了,现在已经使用Spring Boot了几个月。我的Spring MVC应用程序通常部署在Java EE容器上,例如JBoss / WildFly或WebLogic。这样做可以让我使用JNDI来处理数据源或涉及机密/密码的任何其他敏感数据。这使我的应用程序"消费" JNDI资源基于其名称。

现在使用Spring Boot,特别是对于自包含的微服务(嵌入式tomcat),该信息现在存储在应用程序(application.properties和/或Spring Java Config类)中,因此在Git中进行了版本控制。

这使得这些信息更多地暴露给其他开发者,我不太满意。我也不喜欢在SonarQube和Jenkins中显示这些细节(通过工作区)。

问题是:针对此特定要求是否有最佳做法?

*更新* 我在这里和那里看到一些关于Jasypt的使用的文章,但我想知道它是否仍然是一个有效的库,因为上一个稳定版本的日期是2014年。

谢谢

2 个答案:

答案 0 :(得分:0)

您可以考虑使用保险库。 Spring支持其中一些开箱即用。您可以在http://projects.spring.io/spring-vault/找到更多信息。

答案 1 :(得分:0)

如果你的堆栈中有弹簧云,那么它非常简单。使用加密值并将其放入应用程序属性中。按照here提到的说明进行操作。

其他方法是,将值设置为环境变量并使用应用程序属性中的环境变量。说明here