Я рассматриваю два потенциальных решения и буду признателен за ваши мысли и предложения:
1. Использование PolicyViolationException
Есть ли способ использовать PolicyViolationException, чтобы запретить пользователям добавлять ClusterAction или AlterConfigs разрешения конкретно для ресурса «Кластер»?
2. Пользовательский авторизатор
Можем ли мы изменить исходный код Kafka, чтобы реализовать собственный авторизатор? Например, настроив StandardAuthorizer, чтобы он явно запрещал эти операции. Вот концептуальная реализация:
Код: Выделить всё
import org.apache.kafka.common.acl.AclOperation;
@Override
public List authorize(
AuthorizableRequestContext requestContext,
List actions) {
List results = new ArrayList(actions.size());
StandardAuthorizerData curData = data;
for (Action action : actions) {
// Explicitly deny AlterConfigs and ClusterAction
if (action.operation() == AclOperation.ALTER_CONFIGS ||
action.operation() == AclOperation.CLUSTER_ACTION) {
results.add(AuthorizationResult.DENIED);
} else {
// Default authorization logic
AuthorizationResult result = curData.authorize(requestContext, action);
results.add(result);
}
}
return results;
}
Есть ли у кого-нибудь опыт использования этих методов или понимание их осуществимость? Если есть лучшая альтернатива, я буду очень признателен за ваш вклад.
Заранее спасибо!
У меня есть определил потенциальные решения, изложенные в моем вопросе, но мне нужны экспертные рекомендации для разработки подробного плана реализации.
Подробнее здесь: https://stackoverflow.com/questions/793 ... operations