Spring 无法从 Openshift 获取环境变量

问题描述 投票:0回答:1

当我向 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 中的配置:

enter image description here

知道如何解决这个问题吗?

spring spring-boot deployment openshift fortify
1个回答
0
投票

需要在

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}
© www.soinside.com 2019 - 2024. All rights reserved.