使用 Java 代码的 Kafka ACL 授权问题
Kafka ACL authorization issue using Java code
我想像通过 kafka-acls.sh 一样通过 java 应用程序授予对 kafka 主题的访问权限。我只是想通过 java api.
在命令下 运行
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:ctadmin
和 User:ctadmin
之间的区别,它们没有为我的用户正确授予权限,我无权使用此主题。
我该如何解决这个问题?
问题已解决。这可能是由于缓存中有一些旧数据。我在另一台主机上做了一个新的 Kafka install/config,一切正常。
我想像通过 kafka-acls.sh 一样通过 java 应用程序授予对 kafka 主题的访问权限。我只是想通过 java api.
在命令下 运行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:ctadmin
和 User:ctadmin
之间的区别,它们没有为我的用户正确授予权限,我无权使用此主题。
我该如何解决这个问题?
问题已解决。这可能是由于缓存中有一些旧数据。我在另一台主机上做了一个新的 Kafka install/config,一切正常。