Kafka SASL/PLAINTEXT 简单验证测试

来源:互联网 发布:邮件传输协议端口号 编辑:程序博客网 时间:2024/05/16 01:33
jonny@Debian:/opt/kafka_2.11-0.11.0.0/config$ cat zookeeper.properties 
dataDir=/var/tmp/zookeeper
clientPort=2181
maxClientCnxns=0
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0/config$ cat server.properties 
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=true
auto.create.topics.enable=true
broker.id=0
listeners=SASL_PLAINTEXT://0.0.0.0:9092
advertised.listeners=SASL_PLAINTEXT://[PUBLIC IP]:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
advertised.host.name=localhost
num.partitions=1
num.recovery.threads.per.data.dir=1
log.flush.interval.messages=30000000
log.flush.interval.ms=1800000
log.retention.minutes=30
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
delete.topic.enable=true
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
super.users=User:admin
offsets.topic.replication.factor=1




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0/config$ cat consumer.properties 
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0/config$ cat producer.properties 
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
bootstrap.servers=localhost:9092
compression.type=none




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0/config$ cat kafka_server_jaas.conf 
KafkaServer {
   org.apache.kafka.common.security.plain.PlainLoginModule required
   username="admin"
   password="admin-secret"
   user_admin="admin-secret"
   user_staff="staff-secret";
};


Client {
   org.apache.kafka.common.security.plain.PlainLoginModule required
   username="admin"
   password="admin-secret";
};




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0/config$ cat kafka_client_jaas.conf 
KafkaClient {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="admin"
  password="admin-secret";
};




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0$ cat bin/kafka-server-start.sh 
......
#mod last line to
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/opt/kafka_2.11-0.11.0.0/config/kafka_server_jaas.conf kafka.Kafka "$@"






#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0$ cat bin/kafka-console-producer.sh 
......
#mod last line to
exec $(dirname $0)/kafka-run-class.sh -Djava.security.auth.login.config=/opt/kafka_2.11-0.11.0.0/config/kafka_client_jaas.conf kafka.tools.ConsoleProducer "$@"




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0$ cat bin/zookeeper-server-start.sh 
......
#mod last line to
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/opt/kafka_2.11-0.11.0.0/config/zookeeper_jaas.conf org.apache.zookeeper.server.quorum.QuorumPeerMain "$@"




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0$ bin/zookeeper-server-start.sh config/zookeeper.properties 




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0$ bin/kafka-server-start.sh config/server.properties 




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0$ bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --list




#----
jonny@Debian:/opt/kafka_2.11-0.11.0.0$ bin/kafka-acls.sh --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:staff --operation Write --operation Read --topic test




#----
#test producer
jonny@Debian:/opt/kafka_2.11-0.11.0.0$  bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test --producer.config=config/producer.properties




#----
#test consumer
jonny@Debian:/opt/kafka_2.11-0.11.0.0$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning  --consumer.config config/consumer.properties




#----
#python
>>>from kafka import KafkaProducer
>>>producer = KafkaProducer(bootstrap_servers='HOST:9092',security_protocol="SASL_PLAINTEXT", sasl_mechanism='PLAIN', sasl_plain_username='staff', sasl_plain_password='staff-secret')
>>>producer.send('test', b'some_message_bytes')
>>>producer = KafkaProducer(value_serializer=lambda v: json.dumps(v,ensure_ascii=False).encode('utf-8'),bootstrap_servers='HOST:9092',security_protocol="SASL_PLAINTEXT", sasl_mechanism='PLAIN', sasl_plain_username='staff', sasl_plain_password='staff-secret')
>>>producer.send('test', {'foo': 'bar'})



原创粉丝点击