当我向 Git 提交一些更改时,我有 Spring Boot 应用程序,它会自动部署到 Openshift。 我需要外部化数据源配置。我正在尝试使用环境变量作为解决方案。
这是我的应用程序.yaml
...
spring:
datasource:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@10.xxx.xxx.xxx:1521/DBASE
username: ****
password: ****
...
我无法在 application.yaml 中获得用户名和密码,因为该构建是由 Fortify 扫描的,Fortify 会识别漏洞。 尝试使用环境变量,我首先在 Windows 中使用环境变量进行了测试。我在 Windows 中添加了这两个环境:
SPRING_DATASOURCE_USERNAME
SPRING_DATASOURCE_PASSWORD
我已将 application.yaml 更改为此并且工作正常。
...
spring:
datasource:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@10.xxx.xxx.xxx:1521/DBASE
...
我尝试将相同的环境添加到 Openshift 中的 DeploymentConfig 但不起作用。 Spring 找不到我在 Openshift 中创建的环境变量。
这是我在 Openshift DeploymentConfigs 中的配置:
知道如何解决这个问题吗?
需要在
application.yaml
的配置中添加环境变量。例如,
spring:
datasource:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@10.xxx.xxx.xxx:1521/DBASE
username: ${SPRING_DATASOURCE_USERNAME}
password: ${SPRING_DATASOURCE_PASSWORD}