NODE-3152: ensure AWS environment variables are applied properly #2756
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The AWS environment variables were not detected properly.
The checks for
username == null
andpassword == null
would always return false as the staticmerge(...)
method that is used to create an instance ofMongoCredentials
defaulted to an empty string as value for both.Furthermore, the
AWS_SESSION_TOKEN
must be applied if it is present in the environment variables and takes precedence over any other value. See https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst#environment-variables:The direct assignment of
AWS_SESSION_TOKEN
would also potentially fail as it happened thatthis.mechanismProperties
was initialized with an already freezed object throwing an error. That's why I changed that to a destructured assignment.With those changes I am able to run all my E2E tests in mongosh for AWS authentication successfully.
Please note that I did not know where to add test cases for the driver and would ask you to either give me a hint so I can add them or add them on your own :)