Contains Ignorecase Check for ProfileCredentials property keys read from ~/.aws/credentials file. #4164
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.
Motivation and Context
There is no guarantee that every developer machine having profile configured with lower case property keys.
For example in our case, we are using some python reusable script to setup ~/.aws/credentials file, it actually creates file as below
Due property keys are in upper case, ProfileCredentialsUtil.java @line 143 and 147 is failing due to case sensitive check with containsKey of properties map object.
Modifications
Storing profile credential data as
TreeMap
withString.CASE_INSENSITIVE_ORDER
, it actually doesn't alter any property key-values, but while checking contains key, it considers case insensitivity.Changes to file:
software.amazon.awssdk.profiles.Profile.java#BuilderImpl.java
@line 194.Testing
Maven build passed locally.
Validated through sample java application with updated SDK changes.
Added UT to validate actual change.
Types of changes
Checklist
mvn install
succeedsscripts/new-change
script and following the instructions. Commit the new file created by the script in.changes/next-release
with your changes.License