Skip to content

KAFKA-18744: reuse LoginCallbackHandler on Kerberos re-login - #23281

Open
MdTanwer wants to merge 1 commit into
apache:trunkfrom
MdTanwer:KAFKA-18744-kerberos-relogin-callback
Open

KAFKA-18744: reuse LoginCallbackHandler on Kerberos re-login#23281
MdTanwer wants to merge 1 commit into
apache:trunkfrom
MdTanwer:KAFKA-18744-kerberos-relogin-callback

Conversation

@MdTanwer

@MdTanwer MdTanwer commented Aug 26, 2026

Copy link
Copy Markdown

Summary

  • sasl.login.callback.handler.class was used for the initial Kerberos login but ignored when the TGT was refreshed. KerberosLogin.reLogin() constructed a new LoginContext with a null callback, so password-based Kerberos clients failed after ticket expiry (LoginException: No CallbackHandler available to garner authentication information from the user).
  • Re-login now reuses the configured AuthenticateCallbackHandler, matching the initial login path.
  • Adds a unit test that plants a fake TGT and requires a PasswordCallback, asserting the handler is invoked again on re-login.

Fixes KAFKA-18744. Also covers KAFKA-14681 / #13081 (same reLogin() null-callback bug when the TGT is refreshed without a keytab).

@github-actions github-actions Bot added triage PRs from the community clients labels Aug 26, 2026
@MdTanwer
MdTanwer marked this pull request as draft August 26, 2026 12:56
@MdTanwer
MdTanwer force-pushed the KAFKA-18744-kerberos-relogin-callback branch from 7da8c68 to 8b804a5 Compare August 26, 2026 13:01
Initial login honored sasl.login.callback.handler.class, but ticket
refresh built LoginContext with a null callback, so password-based
Kerberos re-login failed when the TGT expired.
@MdTanwer
MdTanwer force-pushed the KAFKA-18744-kerberos-relogin-callback branch from 8b804a5 to e1602de Compare August 26, 2026 13:02
@MdTanwer
MdTanwer marked this pull request as ready for review August 26, 2026 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clients triage PRs from the community

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant