使用Java代码的Kafka ACL问题

L.v*_*tor 5 java kerberos apache-kafka

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

String[] cmdPArm = {"--authorizer-properties","zookeeper.connect=vmw201:2181/
kafka","--add","--allow-principal","User:Alice","--operation","Write","--topic
","test"};AclCommand.main(cmdPArm);
Run Code Online (Sandbox Code Playgroud)

但是在操作之后,会出现错误,没有授权授权.我的集群已将keberos部署为身份验证系统.如何将超级用户的身份引入代码?

执行ACL命令时出错:

org.apache.zookeeper.KeeperException $ NoAuthException:KeeperErrorCode = NoAuth for/kafka-acl/Topic/test org.I0Itec.zkclient.exception.ZkException:org.apache.zookeeper.KeeperException $ NoAuthException:KeeperErrorCode = NoAuth for/kafka-acl/org.I0Itec.zkclient.exception.ZkException.create(ZkException.java:68)org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:995)org.I0Itec.zkclient.ZkClient.writeDataReturnStat上的/ Topic/test (zkClient.java:1138)org.I0Itec.zkclient.ZkClient.writeData(ZkClient.java:1133)at ork.I0Itec.zkclient.ZkClient.writeData(ZkClient.java:1101)at kafka.utils.ZkUtils.updatePersistentPath( ZkUtils.scala:411)at kafka.security.auth.SimpleAclAuthorizer.addAcls(SimpleAclAuthorizer.scala:173)at kafka.admin.AclCommand $$ anonfun $ addAcl $ 1 $$ anonfun $ apply $ 3.apply(AclCommand.scala:89) at kafka.admin.AclCommand $$ anonfun $ addAcl $ 1 $$ anonfun $ apply $ 3.apply(AclCommand.scala:86)at scala.collection.TraversableLike $ WithFilter $$ anonfun $ foreach $ 1.apply(TraversableLik e.scala:772)scala.collection.immutable.Map $ Map1.foreach(Map.scala:109)at scala.collection.TraversableLike $ WithFilter.foreach(TraversableLike.scala:771)at kafka.admin.AclCommand $$ anonfun $ addAcl $ 1.apply(AclCommand.scala:86)at kafka.admin.AclCommand $$ anonfun $ addAcl $ 1.apply(AclCommand.scala:80)at kafka.admin.AclCommand $ .withAuthorizer(AclCommand.scala:74) at kafka.admin.AclCommand $ .addAcl(AclCommand.scala:80)at kafka.admin.AclCommand $ .main(AclCommand.scala:48)at kafka.admin.AclCommand.main(AclCommand.scala)at kafka.acl. KafkaAcl.main(KafkaAcl.java:15)引起:org.apache.zookeeper.KeeperException $ NoAuthException:KeeperErrorCode = NoAuth for/kafka-acl/Topic/test at org.apache.zookeeper.KeeperException.create(KeeperException.java: 113)org.apache.zookeeper.KeeperException.create(KeeperException.java:51)org.apache.zookeeper.ZooKeeper.setData(ZooKeeper.java:1270)at org.I0Itec.zkclient.ZkConnection.writeDataReturnStat(ZkConnection.java) :133)在org.I0Itec.zkclient.ZkClient $ 1 3.call(ZkClient.java:1142)org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:985)... 17更多