使用Java代码的Kafka ACL授权问题

时间:2016-10-24 00:09:23

标签: java apache-kafka acl

我想通过java应用程序授予对kafka主题的访问权限,就像我们通过kafka-acls.sh一样。我只想通过java api运行命令。

kafka-acls.sh --add --allow-principals User:ctadmin --operation ALL --topic test --authorizer-properties zookeeper.connect=localhost:2181

我使用这些Java指令来执行此操作(topicName将test作为值):

String[] cmdPArm = {"--add", "--allow-principals", "User:ctadmin", "--operation", "ALL","--topic", topicName ,"--authorizer-properties", "zookeeper.connect=localhost:2181"};
AclCommand.main(cmdPArm);

该命令没有任何问题。已设置ACL授权,但我对此命令的工作方式有一点问题。当我尝试获取我的主题的当前权限时,而不是此输出:

Current ACLs for resource `Topic:test`: 
    User:ctadmin has Allow permission for operations: All from hosts: localhost

我有这个:

Current ACLs for resource `Topic:test`: 
    user:ctadmin has Allow permission for operations: All from hosts: localhost

您可以看到user:ctadminUser:ctadmin之间的区别,它们没有为我的用户正确授予权限,而且我没有被授权使用此主题。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

问题解决了。这可能是由于缓存中的一些旧数据。我在另一台主机上做了一个新的Kafka安装/配置,一切正常。