spring-boot - 如何使用 manifest.yml 存储 application.properties 值以包含密码?

标签 spring-boot cloud-foundry

所以我的 application.properties 看起来像:

spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=mydb
spring.datasource.username=user
spring.datasource.password=123456
spring.jpa.database-platform=org.hibernate.dialect.SQLServer2012Dialect

我不希望其他人在进入我的 application.properties 文件时能够看到我的用户名和密码。

有没有其他方法可以将值(value)推送到 Cloud Foundry?像 manifest.yml 这样的东西?

尝试创建 manifest.yml

我试图制作一个 list 文件,以便我可以将它与我在 Cloud Foundry 上的应用程序绑定(bind)。

VCAP_SERVICES =
{
  "oraclesql": [
    {
      "name": "OrcaleDb",
      "label": "oraclesql",
      "tags": [
        "oracledb",
        "oracle",
        "relational"
      ],
      "plan": "free",
      "credentials": {
        "uri": "jdbc:sqlserver://localhost:1433;databaseName=mydb",
        "username": "user",
        "password": "123456"        
      }
    }
  ]
}

已创建 application.yml

//this works
    spring:
        application:
            name: tester
        datasource:
            driverClassName: jdbc:sqlserver://localhost:1433;databaseName=mydb
            username: user
            password: 123456
            initialize: false
        jpa:
            databasePlatform: org.hiberate.dialect.Oracle10gDialect

最佳答案

是也不是。不幸的是,manifest.yml 并不是那样工作的。该文件提供将用于 cf push 的设置。它与应用程序无关,对 Spring、Java、您的编程语言或您选择的应用程序框架一无所知。因此它无法更改您的 application.properties 文件或其他特定于框架的配置。

幸运的是,有许多方法可以配置 Spring Boot(参见 here),其中之一是通过环境变量。幸运的是,您可以通过 manifest.yml 设置环境变量。因此,如果您在 manifest.yml 中设置了正确的环境变量,您就可以配置您的应用程序。

作为引用,以下是在 manifest.yml 中设置环境变量的说明。

https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#env-block

大致是这样的:

---
  ...
  env:
    ENV_1: val_1
    ENV_2: val_2

Spring Boot 将使用解释的规则将环境变量映射到属性 here .一个基本示例是 SPRING_DATASOURCE_USERNAME 映射到 application.properties 中的 spring.datasource.username

关于spring-boot - 如何使用 manifest.yml 存储 application.properties 值以包含密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42350039/

相关文章:

java - 访问 ibm bluemix java 运行时中的文件

java - 如何动态配置Quartz DataSource URL?

spring-boot - 如何在不指定方案、单独托管的情况下使用 UriBuilder 构建 URI?

java - 使用 MongoTemplate 时如何将类型从 ObjectId 转换为 Long?

spring-boot - cloud-foundry:ERR 1 秒后超时:健康检查从未通过

Docker Image 和 Cloud Foundry Droplet 类似吗?

spring-mvc - Spring Boot - java.lang.ClassNotFoundException : org. springframework.context.ApplicationContextInitializer

java - 在Eclipse中的Lombok中使用@ Slf4j时出现编译错误

maven - POM 错误 : Failure to find org. springframework.boot

java - Spring Boot @RestController 端点和 Spring Data Rest 投影