Skip to content

Vault database - datasource username and password not populated when multiple databases use same vault db role #920

@nipr-jdoenges

Description

@nipr-jdoenges

Describe the bug

When using cloud.vault.databases to configure multiple datasources, it appears that username/password datasource properties don't get set if more than one entry refers to the same vault database role.

Our use case is an application that uses 2 separate databases in some environments, while in other environments rather than using 2 different databases, the application uses 2 different schemas co-located in the same database.

Spring cloud version: 2025.0.0

Sample

Highly abstracted, of course

Does not work:

  cloud:
    vault:
      databases:
        primary:
          enabled: true
          role: db1-dbuser
          backend: database/
          static-role: true
          username-property: spring.datasource.username
          password-property: spring.datasource.password
        other-database:
          enabled: true
          role: db1-dbuser
          backend: database/
          static-role: true
          username-property: spring.secondary-datasource.username
          password-property: spring.secondary-datasource.password

Works:

  cloud:
    vault:
      databases:
        primary:
          enabled: true
          role: db1-dbuser
          backend: database/
          static-role: true
          username-property: spring.datasource.username
          password-property: spring.datasource.password
        other-database:
          enabled: true
          role: db2-dbuser
          backend: database/
          static-role: true
          username-property: spring.secondary-datasource.username
          password-property: spring.secondary-datasource.password

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions