我想向我的kafka集群添加新用户,其方法似乎是在zookeeper数据库中添加SCRAM-SHA-512/256配置,但我只知道如何使用命令行实用程序,如下所示:
bin/kafka-configs.sh --zookeeper zookeeper_server_address --alter --add-config "SCRAM-SHA-512=[password=password]" --entity-type users --entity-name userName
是否有其他方法可以使用 Java 版 Kafka API 来解决此问题?
最佳答案
我看到一个帖子说 Kafka api 不具备此功能,因此我制作了一个自定义 .sh 脚本来创建用户 (create-user.sh):
#!/bin/bash
SERVER=$1
USER=$2
PASSWORD=$3
if [ "x$SERVER" = "x" ] || [ "x$USER" = "x" ] || [ "x$PASSWORD" = "x" ]; then
echo "usage: $0 <server:port> <user> <password>"
exit
fi
bin/kafka-configs.sh --zookeeper $SERVER --alter --add-config "SCRAM-SHA-512=[password=$PASSWORD]" --entity-type users --entity-name $USER
我从java程序中调用它:
ProcessBuilder pb = new ProcessBuilder("./create-user.sh", "zookeeper-server", "sampleUser", "password");
pb.environment().put("PATH", "/home/myHome/Programs/java/jdk-13.0.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin");
Process p = pb.redirectErrorStream(true)
.directory(new File("/home/myHome/Desktop/Kafka/kafka_2.12-2.4.1"))
.start();
注意,我需要在 PATH 中指定一些目录并将其作为环境变量传递给 ProcessBuilder,因为如果没有,它会抛出错误,指出找不到命令
关于java - 如何使用 Java API 添加 SCRAM-SHA-512 kafka 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61601817/