Rajini Thanks for putting this together. It is looking good. I have few questions...
1. List<AuthorizationResult> authorize(..., List<Action> actions). Do you see a scenario where the broker will call authorize for multiple topics at the same time? I can understand that during creating/deleting ACLS, multiple permissions for multiple resources might be done. For authorize call, would this be a case? And does the Authorize implementation will be able to do performance optimization because of this? Or should we just keep it simple? I don't see it as an issue from Apache Ranger side, but just checking to see whether we need to be aware of something. 2. Should I assume that the SecurityProtocol passed during start and the one return by KafkaRequestContext.securityProtocol() will be the same? CompletableFuture<Void> start(String listenerName, SecurityProtocol securityProtocol); KafkaRequestContext.securityProtocol() 3. What is the purpose of AuthorizationMode? How does the broker decide what mode to use when the authorize() method is called? 4. Can we clarify "count" in Action a bit more? How is it used? 5. Do you feel having "stop" along with "start" be helpful? E.g. In Ranger we try to optimize the Audit writing by caching the logs for a fixed interval. But when the Broker terminates, we do a forced flush. Having an explicit "stop" might give us a formal way to flush our audits. Thanks Bosco On 8/7/19, 3:59 PM, "Rajini Sivaram" <rajinisiva...@gmail.com> wrote: Hi Ron/Harsha/Satish, Thanks for reviewing the KIP! We should perhaps have a wider discussion outside this KIP for refactoring clients so that others who are not following this KIP also notice the discussion. Satish, would you like to start a discussion thread on dev? Regards, Rajini On Wed, Aug 7, 2019 at 6:21 PM Satish Duggana <satish.dugg...@gmail.com> wrote: > I felt the same need when we want to add a pluggable API for core > server functionality. This does not need to be part of this KIP, it > can be a separate KIP. I can contribute those refactoring changes if > others are OK with that. > > It is better to have a structure like below. > > kafka-common: > common classes which can be used in any of the other modules in Kafka > like client, Kafka-server-common and server etc. > > kafka-client-common: > common classes which can be used in the client module. This can be > part of client module itself. > > kafka-server-common: > classes required only for kafka-server. > > Thanks. > Satish. > > On Wed, Aug 7, 2019 at 9:28 PM Harsha Chintalapani <ka...@harsha.io> > wrote: > > > > Thanks for the KIP Rajini. > > Quick thought, it would be good to have a common module outside of > clients > > that only applies to server side interfaces & changes. It looks like we > are > > increasingly in favor of using Java interface for pluggable modules on > the > > broker side. > > > > Thanks, > > Harsha > > > > > > On Tue, Aug 06, 2019 at 2:31 PM, Rajini Sivaram <rajinisiva...@gmail.com > > > > wrote: > > > > > Hi all, > > > > > > I have created a KIP to replace the Scala Authorizer API with a new > Java > > > API: > > > > > > - > > > https://cwiki.apache.org/confluence/display/KAFKA/ > > > KIP-504+-+Add+new+Java+Authorizer+Interface > > > > > > This is replacement for KIP-50 which was accepted but never merged. > Apart > > > from moving to a Java API consistent with other pluggable interfaces > in the > > > broker, KIP-504 also attempts to address known limitations in the > > > authorizer. If you have come across other limitations that you would > like > > > to see addressed in the new API, please raise these on the discussion > > > thread so that we can consider those too. All suggestions and feedback > are > > > welcome. > > > > > > Thank you, > > > > > > Rajini > > > >