我想通过java应用程序授予对kafka主题的访问权,就像我们通过kafka-acls.sh所做的那样。我只想通过javaapi运行下面的命令。
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:ctadmin
以及 User:ctadmin
它不能正确授予我的用户权限,并且我无权使用此主题。
我怎样才能解决这个问题?
1条答案
按热度按时间s1ag04yj1#
问题解决了。可能是因为缓存中的一些旧数据。我在另一台主机上重新安装了kafka/config,一切正常。