ret*_*n 0 5 spring spring-boot
我正在使用 Spring JPA 访问我的数据库,但数据库的用户名和密码以两个文件的形式提供给我(username.txt 和password.txt)。安全准则是我们不应该在配置文件中粘贴密码或任何形式的密码(加密)。
我正在尝试找出方法来做这样的事情:
spring.datasource:
url: <db url>
username: "file:/path/username.txt"
password: "file:/path/password.txt"
Run Code Online (Sandbox Code Playgroud)
有谁知道如何实现与此非常相似的东西?
附言。我想在此 spring 属性文件中保留特定于环境的凭据文件路径。有多种方法可以将文件内容作为环境变量 java -Dusername=${cat /path/username} 传递,但我想避免将我的配置放在 spring 属性文件之外。
编辑:用户名和密码以明文形式存储在单独的文件中。
Spring Boot 2.4 引入了从文件中读取配置值的功能,其中目录和文件的名称是属性名称,文件内容是属性值。例如,给定目录结构
path/
spring/
datasource/
username
password
Run Code Online (Sandbox Code Playgroud)
该application.yaml
文件包含
spring.config.import: configtree:/path/
Run Code Online (Sandbox Code Playgroud)
那么环境将包含名为spring.datasource.username
和 的属性spring.datasource.password
。
您可以\xe2\x80\x99t 从 Spring 应用程序属性文件中读取文件的内容。但是您当然可以以编程方式配置数据源,并在代码中读取文件。
\n@Configuration\npublic class DataSourceConfig {\n \n @Bean\n public DataSource getDataSource() {\n DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();\n dataSourceBuilder.driverClassName("org.h2.Driver");\n dataSourceBuilder.url("jdbc:h2:mem:test");\n dataSourceBuilder.username("SA");\n dataSourceBuilder.password("");\n return dataSourceBuilder.build();\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n有关详细信息,请参阅这篇文章。I\xe2\x80\x99m 假设你知道如何使用 Spring Boot 读取文件,如果不知道,你可以看这篇文章。
\n 归档时间: |
|
查看次数: |
5541 次 |
最近记录: |