Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MongoDB authentication to different DB than used no longer works in spring boot 3.1 #35567

Closed
bpfoster opened this issue May 19, 2023 · 2 comments
Assignees
Labels
type: regression A regression from a previous release
Milestone

Comments

@bpfoster
Copy link

bpfoster commented May 19, 2023

After upgrading from Spring Boot 3.0 to 3.1 today, MongoDB authentication via the autoconfiguration is broken.

If you configure both a database to use, and a separate database to authenticate against, the authentication database is ignored, and authentication is attempted against the to-be-used database.

In versions past, and the intended behavior is, that specifying the authentication database allows authenticating as the user to that DB and then switching over to the configured database for normal operations.

Perhaps the PropertiesMongoConnectionDetails should append the authSource option to the connection string if authenticationDatabse is present?

@ps-tunnelsoft
Copy link

@scottfrederick can you have a look at a similar issue of spring-boot-docker-compose MongoDB autoconfiguration?

The StringBuilder in class MongoDockerComposeConnectionDetailsFactory is also missing the authSource option. But I am not sure, where to take this value from.

MONGO_INITDB_ROOT_USERNAME and MONGO_INITDB_ROOT_PASSWORD are used to create a root user by default in admin database and not MONGO_INITDB_DATABASE.

@scottfrederick
Copy link
Contributor

@ps-tunnelsoft From reading the documentation for the official MongoDB image, I think you're right.

MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD
These variables, used in conjunction, create a new user and set that user's password. This user is created in the admin authentication database

We might need to set the authentication database to the value admin if the username and password environment variables are configured. Can you create a new issue so we can investigate further?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: regression A regression from a previous release
Projects
None yet
Development

No branches or pull requests

4 participants