版本: kafka_2.13-2.6.0
1
在config
下面新建kafka_client_jaas.conf
文件內(nèi)容如下
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin";
};
在config
下面新建kafka_server_jaas.conf
文件內(nèi)容如下
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin"
user_admin="admin";
};
注意規(guī)則是: user_用戶="密碼"
2
復(fù)制文件 kafka-server-start.bat
為 kafka-server-start-sasl.bat
(將下面配置中???
替換為server
)
復(fù)制文件 kafka-console-producer.bat
為 kafka-console-producer-sasl.bat
(將下面配置中???
替換為client
)
復(fù)制文件 kafka-console-consumer.bat
為 kafka-console-consumer-sasl.bat
(將下面配置中???
替換為client
)
在新文件的sasl
中添加以下命令
- windows 版本
IF ["%KAFKA_OPTS%"] EQU [""] (
set KAFKA_OPTS=-Djava.security.auth.login.config=file:%~dp0../../config/kafka_???_jaas.conf
)
- linux 版本
if [ "x$KAFKA_OPTS" = "x" ]; then
export KAFKA_OPTS=-Djava.security.auth.login.config=../../config/kafka_???_jaas.conf
fi
4
config下consumer.properties
和producer.properties
添加命令
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
6
復(fù)制一份server.properties
為server-sasl.properties
添加設(shè)置如下:
listeners=SASL_PLAINTEXT://127.0.0.1:9092
#使用的認(rèn)證協(xié)議
security.inter.broker.protocol=SASL_PLAINTEXT
#SASL機制
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
#完成身份驗證的類
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
#如果沒有找到ACL(訪問控制列表)配置初茶,則允許任何操作内斯。
#allow.everyone.if.no.acl.found=true
#需要開啟設(shè)置超級管理員, 開啟以下命令
super.users=User:admin
#delete.topic.enable=true
#auto.create.topics.enable=false
7
啟動zookper
zookeeper-server-start.bat ../../config/zookeeper.properties
啟動kafka
kafka-server-start-sasl.bat ../../config/server-sasl.properties
啟動producer
kafka-console-producer-sasl.bat --bootstrap-server 127.0.0.1:9092 --topic test --producer.config ../../config/producer.properties
啟動 consumer
kafka-console-consumer-sasl.bat --bootstrap-server 127.0.0.1:9092 --from-beginning --topic test --consumer.config ../../config/consumer.properties
在spring boot 中使用 kafka 認(rèn)證 sasl
在application.properties
文件中添加
- producer
spring.kafka.producer.properties.sasl.mechanism: PLAIN
spring.kafka.producer.properties.security.protocol: SASL_PLAINTEXT
spring.kafka.producer.properties.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"admin\";
- consumer
spring.kafka.consumer.properties.sasl.mechanism: PLAIN
spring.kafka.consumer.properties.security.protocol: SASL_PLAINTEXT
spring.kafka.consumer.properties.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"admin\";