Add constructor overload to `STSProfileCredentialsProvider` where the client factory returns a shared pointer. by teo-tsirpanis · Pull Request #2830 · aws/aws-sdk-cpp

Issue #, if available:

Description of changes:

The STSProfileCredentialProvider class has a constructor overload that accepts an STSClient factory function. The problem with this function is that it returns an STSClient*, making lifetime management tricky in certain cases.

This PR introduces an additional overload that accepts an factory that returns a shared_ptr<STSClient>. This will enable the client to be freed automatically when the credentials provider no longer needs it.

The existing constructor overload wraps the STSClient* into a shared pointer with a deleter that does nothing, maintaining compatibility. I also added an overload to disambiguate between creating a credential provider with a nullptr factory.

Check all that applies:

  • Did a review by yourself.
  • Added proper tests to cover this PR. (If tests are not applicable, explain.)
  • Checked if this PR is a breaking (APIs have been changed) change.
  • Checked if this PR will not introduce cross-platform inconsistent behavior.
  • Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

  • Linux
  • Windows
  • Android
  • MacOS
  • IOS
  • Other Platforms

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.