es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Configurando el controlador de devolución de llamada SASL en el cluster de Kafka de Docker.

Estoy intentando implementar un manejador de retorno de llamada de inicio de sesión de servidor personalizado en mi clúster Kafka en Docker. La propiedad en el archivo de propiedades es relativamente simple de configurar a través de Docker:

KAFKA_SASL_SERVER_CALLBACK_HANDLER_CLASS=[full_class_name]

Además, luego configuro la ruta de acceso de la clase:

CLASSPATH=/etc/kafka/jars/*

y finalmente asigno el volumen a una ubicación donde estará el archivo .jar:

-v /mi/ubicación/local:/etc/kafka

Pero según la documentación y los ejemplos de oAuth, para establecer esa propiedad, el nombre de la propiedad debe tener prefijo tanto del nombre del oyente como del mecanismo de SASL:

listener.name.<nombre_del_oyente>.<mecanismo_sasl>.sasl.callback.handler.class=

Entonces, con mi oyente EXTERIOR y mecanismo SASL PLAIN, debería ser:

listener.name.outside.plain.sasl.callback.handler.class=

¿Cómo se configura esto en un docker run/compose? No veo cómo puedo crear una variable de entorno que haga el trabajo ya que la propiedad básica sasl.callback.handler.class no funciona.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para establecer la propiedad listener.name.outside.plain.sasl.callback.handler.class en una ejecución / composición de Docker, se puede agregar al variable de entorno KAFKA_CFG. Por ejemplo, si se está utilizando Docker Compose, se puede agregar lo siguiente al archivo docker-compose.yml:

    services:
      kafka:
        environment:
          KAFKA_CFG_LISTENER_NAME_OUTSIDE_PLAIN_SASL_CALLBACK_HANDLER_CLASS: [full_class_name]
    

    Esto establecerá la propiedad listener.name.outside.plain.sasl.callback.handler.class en el nombre de la clase especificado para el mecanismo SASL PLAIN y para el oyente outside. Tenga en cuenta que el nombre de la propiedad en la variable de entorno KAFKA_CFG está en mayúsculas y utiliza guiones bajos en lugar de puntos.

    Alternativamente, se puede especificar la propiedad directamente en el archivo server.properties y montarlo como un volumen en su contenedor Docker:

    services:
      kafka:
        volumes:
          - /ruta/al/archivo/server.properties:/etc/kafka/server.properties
    

    En el archivo server.properties, se puede agregar la siguiente línea:

    listener.name.outside.plain.sasl.callback.handler.class=[full_class_name]
    

Comments are closed.