Hey, guys. How you doing? My name is Fabio and i need a little help.

I need to enable authentication on my kafka broker (using bitnami/kafka
image) using SASL. I've followed the examples of the documentation, but i
got a strange error when i try to up the compose file.
I mounted the jaas file on the correct path on the kafka container (a
simple cat command validating this mounting).
The error is below:
Error: Could not find or load main class
"-Djava.security.auth.login.config=.etc.kafka.kafka_server_jaas.conf" kafka
Caused by: java.lang.ClassNotFoundException:
"-Djava.security.auth.login.config=.etc.kafka.kafka_server_jaas.conf"

My kafka_server_jaas.conf:
#####################
KafkaServer {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="admin"
  password="admin-123"
  user_admin="admin123"
  user_user123="user123";
};
Client {};
#####################

My entire docker-compose file:

#####################
services:
  zookeeper:
    image: bitnami/zookeeper:latest
    container_name: zookeeper
    restart: always
    ports:
      - "2181:2181"
    volumes:
      - "zookeeper_data:/bitnami"
    environment:
      - ZOOKEEPER_CLIENT_PORT=2181
      - ZOOKEEPER_TICK_TIME=2000
      - ZOOKEEPER_SYNC_LIMIT=2
      - ZOOKEEPER_INIT_LIMIT=5
      - ALLOW_ANONYMOUS_LOGIN=yes
    deploy:
      resources:
        limits:
          memory: 2G
        reservations:
          memory: 1G

  kafka:
    image: bitnami/kafka:latest
    container_name: kafka
    restart: always
    ports:
      - "9092:9092"
    environment:
      - KAFKA_LISTENERS=SASL_PLAINTEXT://:9092
      - KAFKA_ADVERTISED_LISTENERS=SASL_PLAINTEXT://:9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_SASL_ENABLED_MECHANISMS=PLAIN
      - KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN
      - KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN
      - KAFKA_INTER_BROKER_LISTENER_NAME=SASL_PLAINTEXT
      - KAFKA_CFG_ALLOW_EVERYONE_IF_NO_ACL_FOUND=false
      -
KAFKA_CFG_AUTHORIZER_CLASS_NAME=kafka.security.auth.SimpleAclAuthorizer
      - KAFKA_CFG_SUPER_USERS=User:admin
      - KAFKA_OPTS=
"-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf
-Dzookeeper.sasl.client=false"

    volumes:
      - "kafka_data:/bitnami"
      - "./kafka_server_jaas.conf:/etc/kafka/kafka_server_jaas.conf"

    depends_on:
      - zookeeper

  kafka-ui:
    image: provectuslabs/kafka-ui:latest
    container_name: kafka-ui
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - KAFKA_CLUSTERS_0_NAME=local
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=localhost:9092
volumes:
  kafka_data:
    driver: local
  zookeeper_data:
    driver: local
####################################

I've searched a lot, but i cant find what i'm doing wrong.
Any help will be appreciated.

Thanks,

Fabio

--

Reply via email to