2016-10-24 5 views
0

Я хочу предоставить доступ к теме kafka через java-приложение, как это происходит через kafka-acls.sh. Я просто хотел запустить под командой java api.Вопрос авторизации Kafka ACL с использованием кода Java

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 которое не дает разрешения правильно для моего пользователя, и я не уполномочен потреблять эту тему.

Как это исправить?

ответ

1

Проблема решена. Вероятно, это связано с некоторыми старыми данными в кеше. Я сделал новую установку/конфиг Kafka на другом хосте, и все работает отлично.