Details
-
Sub-task
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
None
-
None
-
Reviewed
Description
So far, the native client communicates with insecure cluster.
This JIRA is to add secure connection support for native client using Cyrus library.
The work is based on earlier implementation and is redone via wangle and folly frameworks.
Thanks to devaraj who started the initiative.
Here is high level description of the design:
- SaslHandler is declared as:
class SaslHandler : public wangle::HandlerAdapter<folly::IOBufQueue&, std::unique_ptr<folly::IOBuf>>{
It would be inserted between EventBaseHandler and LengthFieldBasedFrameDecoder in the pipeline (via RpcPipelineFactory::newPipeline())
- SaslHandler would intercept writes to server by buffering the IOBuf's and start the handshake process (via sasl_client_XX calls provided by Cyrus)
- after handshake is complete, SaslHandler would send the buffered IOBuf's to server and act as pass-thru from then on