ฉันกำลังพยายามด้วยอะไรซักอย่า OAUTHBEARER เป็นคนผ่านทาง sasl กลไกของมัน. ส่วนหนึ่งของมันคือฉันต้องการยกเลิกทั้งสองโดยเซิร์ฟเวอร์และการล็อกอินสำหรับโทรกลับตัวจัดการเรียน. ฉันใช้ docker และดังนั้นการตั้งค่าพวกเขาผ่านทางห้องตัวแปรสภาพแวดล้อม:
KAFKA_LISTENER_NAME_OUTSIDE_OAUTHBEARER_SASL_SERVER_CALLBACK_HANDLER_CLASS=[class_name]
มันคืออะไรแปลกก็คือมันเห็นได้ชัดว่าเป็นการโหลดจัดเรียนเหมือนฉัน handily ทำ log.warn("ctor...")
ใน constructor ขอบอกว่าการเรียนการสอน แต่ stacktrace แสดงว่ามันไม่ใช่โทรเรียก handle
วิธีการขจัดให้เรียนแต่แทนที่จะเป็น AbstractLogin$DefaultLoginHandler นักเรียน:
[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)
มันมีข้อเสนอแนะเหรอว่าทำไมมันเป็นการโหลดเครื่องมือจัดการชั้นเรียนแต่ไม่ใช้มัน? ถ้าฉันเพียงการลบตัวแปรสภาพแวดล้อมสำหรับทั้งสองล็อกอิน/SERVER_CALLBACK_HANDLER_CLASS เหมือนกันข้อยกเว้นแต่โดยไม่ต้องเตือนการพิสูจน์ว่าเรื่องเรียนเป็นงานหนักมากและไม่เคยหยุด หนึ่งความเป็นไปได้ว่าฉันไม่สามารถจริงๆคืนดีกับนั่นคือ stacktrace ดูเหมือนจะมีการอ้างเป็น LoginCallbackHandler แต่ชั้นเรียน invoked คือเซิร์ฟเวอร์/ValidatorCallbackHandler;เหมือนว่ามันไม่สามารถโหลดข้อมูลการล็อกอินสำหรับโทรกลับตัวจัดการและเพียงตัวตรวจความถูกต้องเรียกกลับตัวจัดการแต่ฉันมีสองเช็คมันเป็น)ที่ตัวแปรสภาพแวดล้อม pertain ต้องที่ถูกต้องเรียนชื่อของ(การล็อกอิน==การล็อกอิน&&เซิร์ฟเวอร์==ตัวตรวจความถูกต้อง)และเรียนชื่อจริงถูกต้อง