spring-projects / spring-projects/spring-boot
Enable combined MongoDB URI and username/password properties usage
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 81.5k
- Forks
- 42.7k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 65
Description
When configuring MongoDB authentication, the configuration needs to happen either through the URI or through individual properties. Specifying spring.data.mongodb.uri ignores spring.data.mongodb.username and spring.data.mongodb.password properties as we assume the ConnectionString encapsulates all details.
In cases where endpoint config is provided with through an URL but authentication should be provided through properties (e.g. Vault, external property sources), it is not possible to do so.
In other areas, such as JDBC, some drivers can accept authentication as part of the JDBC URL and username/password properties are considered additionally.
Ideally, when both, URI and authentication, are configured, spring.data.mongodb.username overrides what is specified through the connection string.
Related tickets:
- #43851
- #37100
- #17215
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading this issue and the related tickets #43851, #37100, and #17215, then locate Spring Boot's MongoDB configuration and authentication handling. Confirm how URI credentials and spring.data.mongodb.username/password are currently combined, and define tests that verify the requested property precedence when both sources are configured.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, mongodb, spring-boot
- Domain
- backend, databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100