merlimat opened a new pull request #1913: Link internal C++ authentication plugins inside client library URL: https://github.com/apache/incubator-pulsar/pull/1913 ### Motivation It is quite complicated to enable authentication in client library from Python or Golang wrappers. The primary reason for this is that authentication is based on plugins which are compiled as `.so` library and loaded at runtime. While this is convenient for extensibility, having the internally supplied authentication supplied as plugins complicates the distribution of wrappers based on C++ client lib. In Python, the library is distributed as a "wheel" file that contains both the Python code and a library that contains Pulsar C++ client library, Python bindings and all the dependencies for Pulsar client, statically linked, in order to have a self-contained file that will work on any system with no external dependencies. In Go, we link against `libpulsar.so` (that will need to be installed in the system through either Homebrew, RPM or DEB packages), but having to also include `tls.so` and have users figure out where that file is doesn't make for a good experiences. ### Modifications * Include TLS and Athenz authentication in `libpulsar.so`, accessible from code. Eg: ```cpp pulsar::AuthTls::create("my-cert.pem", "my-private.key"); ``` * Plugin system for loading external custom authentication schemes is still available. ### Result * We can have self-contained wrapper binaries with language native way to configure authentication.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
