OK, I can see why passing an instance is not language neutral. All the libraries I can think of accept the SSLSocketFactory, but they most likely don't support C or Python.
My exact use case is to reuse the SSLContext configured in my application outside Kafka. I'm afraid no amount of extra configuration properties can achieve that. It appears the creator of KAFKA-6654 agrees with me. I could solve my problem if I could convince SslChannelBuilder to create my own SslFactory implementation. The Kafka config already contains properties that hold class names. Like I suggested before, we could have a property for the class name that implements an SslFactory interface. I would also need to pass custom config parameters to my SslFactory implementation without causing warnings. By default, the SslFactory implementation would be the one built into Kafka which uses all the Kafka ssl properties. Is that acceptable to resolve KAFKA-6654? Can you think of a better solution? -----Original Message----- From: Colin McCabe [mailto:cmcc...@apache.org] Sent: Monday, October 15, 2018 7:58 PM To: dev@kafka.apache.org Subject: Re: KAFKA-6654 custom SSLContext In general Kafka makes an effort to be langauge-neutral so that Kafka clients can be implemented on platforms other than Java. For example, we have things like librdkafka which allow people to access Kafka from C or Python. Unless I'm misunderstanding something, giving direct access to the SSLContext and SSLSocketFactory seems like it would make that kind of compatibility harder, if it were even still possible. I'm curious if there's a way to do this by adding configuration entries for what you need? best, Colin On Mon, Oct 15, 2018, at 13:20, Pellerin, Clement wrote: > I am new to this mailing list. I am not sure what I should do next. > Should I create a KIP to discuss this? > > -----Original Message----- > From: Pellerin, Clement > Sent: Wednesday, October 10, 2018 4:38 PM > To: dev@kafka.apache.org > Subject: KAFKA-6654 custom SSLContext > > KAFKA-6654 correctly states that there will never be enough > configuration parameters to fully configure the SSLContext/ > SSLSocketFactory created by Kafka. > For example, in our case, we need an alias to choose the key in the > keystore, and we need an implementation of OCSP. > KAFKA-6654 suggests to make the creation of the SSLContext a pluggable > implementation. > Maybe by declaring an interface and passing the name of an > implementation class in a new parameter. > > Many libraries solve this problem by accepting the SSLContextFactory > instance from the application. > How about passing the instance as the value of a runtime configuration > parameter? > If that parameter is set, all other ssl.* parameters would be ignored. > Obviously, this parameter could only be set programmatically. > > I would like to hear the proposed solution by the Kafka maintainers. > > I can help implementing a patch if there is an agreement on the desired > solution.