Make Java Client Authentication Asynchronous
- Dominant language
- Java
- Stars
- 15.3k
- Forks
- 3.8k
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 160
Description
### Search before asking
- [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar.
### Motivation
The OAuth2 client's authenticate call is blocking, which is not great for the client, and is bad for the proxy because the proxy authenticates from a netty event loop.
### Solution
In the same way that PIP 97 #12105 make the `AuthenticationProvider` async, we should update the `Authentication` interface.
### Alternatives
_No response_
### Anything else?
This change will likely require a PIP. I am unable to write such a PIP at this time, so I am creating this issue to keep track of this missing feature.
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
Contributor guide
Research direction
Start with the Authentication interface and the OAuth2 client's blocking authenticate call, then compare the asynchronous AuthenticationProvider change described in PIP 97 (#12105). Done means defining and implementing the asynchronous client authentication change so authentication no longer blocks a Netty event loop, with the required PIP completed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- authentication
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100