如何保存数据库用户名和密码Spring boot项目[重复]

Posted

技术标签:

【中文标题】如何保存数据库用户名和密码Spring boot项目[重复]【英文标题】:How to save DB username and password Spring boot project [duplicate] 【发布时间】:2019-10-12 19:11:00 【问题描述】:

我应该将数据库用户名、密码和 url 保存在哪里,以确保在我尝试为我的 Java 项目创建安全的生产环境时保持安全, 目前我正在使用应用程序属性来保存数据库凭据,请建议一些好的和安全的方法来保存数据库凭据。

application.properties

# This should be used only for credentials and other local-only config.
spring.datasource.url = jdbc:postgresql://localhost/database
spring.datasource.username = root
spring.datasource.password = root@123

我应该将安全和生产 Spring boot 项目保存在哪里

【问题讨论】:

【参考方案1】:

由于您使用的是 Spring Boot,您可以在应用程序启动时传递数据库连接参数。

例如java -jar your-spring-boot-app.jar -Dspring.datasource.url=jdbc:postgresql://localhost/database ...

您也可以将它们设置为系统环境变量:

export SPRING_DATASOURCE_URL="jdbc:postgresql://localhost/database" 然后像往常一样启动您的应用程序。

这样,您只需将连接参数存储在您实际使用它们的服务器上,并防止意外将它们检入您的代码版本控制系统。

见https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

为了提高安全性,您可以使用https://projects.spring.io/spring-vault/ 或外部配置服务器https://spring.io/projects/spring-cloud-config

【讨论】:

以上是关于如何保存数据库用户名和密码Spring boot项目[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Spring Boot 在 Mongodb 中保存重复项?

Spring Boot中如何保护DataSource的用户名和密码?

Spring Boot,使用编码密码实现登录

Spring Boot和MySql - 无法使用新的服务数据库用户名/密码

如何让我的 Spring Boot 应用程序使用给定的用户名和密码登录到 keycloak?

如何在 Spring Boot Rest api 中创建安全登录控制器