windows版kafka添加用戶名密碼認證


./config 目錄下創建配置文件

kafka_server_jaas.conf

KafkaServer {
	org.apache.kafka.common.security.plain.PlainLoginModule required
	username="admin"
	password="123456"
	user_admin="123456"
	user_producer="producer"
	user_consumer="consumer";
};
Client {
 org.apache.kafka.common.security.plain.PlainLoginModule required  
 username="admin"
 password="123456";
};

 kafka_zookeeper_jaas.conf

Server {
	org.apache.kafka.common.security.plain.PlainLoginModule required
	username="admin"
	password="123456"
	user_admin="123456";
};

./config 目錄下修改配置文件

zookeeper.properties 添加

# 安全身份認證
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

 

 

 server.properties 添加

#身份安裝配置
#使用的認證協議
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
#超級管理員權限用戶
super.users=User:admin

 server.properties 修改

listeners=SASL_PLAINTEXT://127.0.0.1:9092

 

 

./bin/windows

zookeeper-server-start.bat 添加

set KAFKA_OPTS=-Djava.security.auth.login.config=file:%~dp0../../config/kafka_zookeeper_jaas.conf

 

 kafka-server-start.bat 添加

set KAFKA_OPTS=-Djava.security.auth.login.config=file:%~dp0../../config/kafka_server_jaas.conf

 

 

Java:

private Map<String, Object> producerProps(String brokers, Byte isAuthorization, String userName, String password) {
        Map<String, Object> props = new HashMap<>();
        //初始化指定kafka集群的地址
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, brokers);
        //初始化批量提交大小
        props.put(ProducerConfig.BATCH_SIZE_CONFIG, 16384);
        //初始化延時提交
        props.put(ProducerConfig.LINGER_MS_CONFIG, 1);
        //初始化設置應答機制
        props.put(ProducerConfig.ACKS_CONFIG, "all");
        //初始化緩沖大小
        props.put(ProducerConfig.BUFFER_MEMORY_CONFIG, 33554432);
        //初始化序列化主鍵
        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        //初始化序列化值
        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);

        if(isAuthorization == ServerConstants.IS_AUTHORIZATION_YES){
            //設置SASL連接
            props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT");
            props.put(SaslConfigs.SASL_MECHANISM, "PLAIN");
            props.put(SaslConfigs.SASL_JAAS_CONFIG, "org.apache.kafka.common.security.plain.PlainLoginModule required username=\""+userName+"\" password=\""+ EncryptUtils.decrypt(password)+"\";");
        }

        return props;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM