OAUTHBEARER'I SASL mekanizması olarak uygulamaya çalışıyorum. Bunun bir kısmı hem sunucu hem de oturum açma geri arama işleyicisi sınıflarını geçersiz kılmam gerekiyor. Docker'ı kullanıyorum ve böylece bunları ortam değişkenleri aracılığıyla ayarlıyorum:
KAFKA_LİSTENER_NAME_OUTSİDE_OAUTHBEARER_SASL_SERVER_CALLBACK_HANDLER_CLASS=[sınıf_adı]
Garip olan şey, açıkça yaptığım gibi belirlenmiş sınıfı yüklüyor olmasıdır. log.warn("ctor...")
söz konusu sınıfların yapıcısında. Ancak stacktrace, çağrılmadığını gösterir handle
sağlanan sınıfın yöntemi, ancak bunun yerine AbstractLogin$DefaultLoginHandler sınıfı:
[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)
İşleyici sınıfını neden yüklediğine, ancak kullanmadığına dair herhangi bir öneri var mı? Her iki LOGİN/SERVER_CALLBACK_HANDLER_CLASS için ortam değişkenlerini kaldırırsam, aynı İstisna ancak sınıfın yüklendiğini kanıtlayan UYARI olmadan. Bu stacktrace bir LoginCallbackHandler ama çağrılan sınıf Sunucu/ValidatorCallbackHandler var; sanki giriş için geri çağrı işleyicisi ve sadece Doğrulayıcı geri çağrı işleyicisi yüklemek mümkün değil, " çift (giriş==Giriş && sunucu==Doğrulayıcı) ve sınıf adları gerçekten doğru olan) bir ortama doğru sınıf adını ilgili değişkenleri kontrol ettim bakın görünüyor gerçekten razı olabilir ki bu da bir ihtimal.