2016-10-24 38 views
0

我想通过java应用程序授予对kafka主题的访问权限,就像我们通过kafka-acls.sh所做的那样。我只是想通过java api运行下面的命令。使用Java代码的Kafka ACL授权问题

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

我用这些Java指令去做(topicName有测试为值):

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

问题已解决。这可能是由于缓存中的一些旧数据造成的。我在另一台主机上做了一个新的Kafka安装/配置,事情工作得很好。