feat: add support for OAUTHBEARER token refresh callback #5
+326
−0
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.
This PR extends
cppkafka::Configurationto support thesasl.oauthbearer.token.refresh.cbcallback provided bylibrdkafka.Motivation Mechanisms like
AWS_MSK_IAMor generic OAUTHBEARER require the client to dynamically generate and refresh tokens when they expire.librdkafkahandles this via a callback that requests a new token. Previously,cppkafkadid not expose this callback, making it impossible to implement custom OAuth logic (like AWS SigV4 signing) purely in C++ without bypassing the wrapper.Changes
Configuration::set_oauthbearer_token_refresh_callbackwhich accepts astd::function.oauthbearer_token_refresh_callback_proxythat correctly bridges the C-stylelibrdkafkacallback to the C++ function, properly casting theopaquehandle.docs/oauth_bearer_callback.mdexplaining how to use the new feature.examples/oauth_example.cppdemonstrating a basic implementation.Usage Example
This change is required for integrating AWS MSK IAM Authentication into ClickHouse.