【问题标题】:How can i add SCRAM-SHA-512 kafka config using Java API?如何使用 Java API 添加 SCRAM-SHA-512 kafka 配置?
【发布时间】:2020-05-04 21:20:14
【问题描述】:

我想将新用户添加到我的 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

有没有其他方法可以使用 Kafka API for Java 来解决这个问题?

【问题讨论】:

    标签: java apache-kafka apache-zookeeper


    【解决方案1】:

    我看到一个帖子说 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,因为如果没有,它会抛出错误,说有些命令找不到

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2021-03-19
      • 2021-11-27
      • 2018-09-26
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      相关资源
      最近更新 更多