Kafka načítání SASL zpětné volání manipulaci třídy, ale nepoužívá ji

0

Otázka

Já jsem se snaží realizovat OAUTHBEARER jako SASL mechanismus. Součástí, které je nutné přepsat oba serveru a přihlašovací callback handler třídy. Jsem pomocí docker a tak, že je nastavíte pomocí proměnné prostředí:

KAFKA_LISTENER_NAME_OUTSIDE_OAUTHBEARER_SASL_SERVER_CALLBACK_HANDLER_CLASS=[class_name]

Co je divné je, že to evidentně je načítání určené třídy jako já obratně dělá log.warn("ctor...") v konstruktoru řekl tříd. Ale stacktrace ukazuje, že to není volání handle metody zadané třídy, ale místo toho AbstractLogin$DefaultLoginHandler třída:

[2021-11-23 17:41:57,137] WARN OAuthAuthenticateValidatorCallbackHandler - ctor: v1.1 (com.oauth2.security.oauthbearer.OAuthAuthenticateValidatorCallbackHandler) [2021-11-23 17:41:57,153] ERROR Unrecognized SASL Login callback (org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule) javax.security.auth.callback.UnsupportedCallbackException: Unrecognized SASL Login callback at org.apache.kafka.common.security.authenticator.AbstractLogin$DefaultLoginCallbackHandler.handle(AbstractLogin.java:105) at org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule.identifyToken(OAuthBearerLoginModule.java:316)

Je tam nějaké návrhy na to, proč je načítání popisovač třídy, ale ne používat? Pokud jsem jednoduše odstranit proměnné prostředí pro oba PŘIHLÁŠENÍ/SERVER_CALLBACK_HANDLER_CLASS, stejné Výjimky, ale bez VAROVAT dokázat, že třída je nabitá. Jednou z možností, se kterou se nemůžu smířit s tím, že na stacktrace se zdá odkazovat na LoginCallbackHandler ale třída je vyvolána Server/ValidatorCallbackHandler; jako kdyby to nebyl schopen načíst přihlašovací callback handler a pouze Validátor callback handler, ale já jsem dvakrát zkontrolováno, že a) proměnné prostředí se týkají správné třídy jméno (login==Login && server==Validátor), a že názvy tříd jsou skutečně správné.

apache-kafka oauth sasl
2021-11-23 17:46:41
1

Nejlepší odpověď

0

něco, co se stane, když jsem se po stackoverflow a odpověď jako mávnutím kouzelného proutku odhaluje sám.

to, co jsem potřeboval udělat, je zahrnout také SASL config pro ostatní posluchače:

KAFKA_LISTENER_NAME_INSIDE_PLAIN_SASL_JAAS_CONFIG="org.apache..."

A pak to funguje, jak s UVNITŘ://PLAIN a MIMO://OAUTHBEARER.

2021-11-23 18:25:23

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................