[ 
https://issues.apache.org/jira/browse/SPARK-6229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14372352#comment-14372352
 ] 

Marcelo Vanzin commented on SPARK-6229:
---------------------------------------

I'm a little wary of exposing the pipeline directly to client code for this 
particular purpose (encryption), or even a "setEncryptionHandler"-style API. 
For two main reasons, mainly:

- You'd need code at every client to know which handlers to add where. To given 
an example, like today, every client would need to figure out whether 
authentication is enabled to add SASL to the pipeline, then figure out whether 
SSL is enabled to add the SslHandler to the pipeline, all that stuff. Instead, 
if the library takes care of it, all that is mostly transparent to client code 
(which would just provide a configuration object to the library).
- It sort of assumes all encryption handlers would work the same way, which is 
not necessarily true. For example, SslHandler kinda needs to be the first 
handler in the pipeline. The SASL encryption handler, on the other hand, would 
benefit from being added after the framing handler. You can make that work, but 
I think it wouldn't be as efficient as if everything was internal to the 
library.

So I'm a little partial to not exposing the internals to client code. We could, 
separately, provide some API that allows people to play directly with the 
pipeline, but I think at this point that has questionable value, and it would 
make the layout of the pipeline (order and name of handlers) a kind of public 
API. I think most users would be fine with just the existing RpcHandler 
interface, instead of having to mess with the internals of the channel.

What do you guys think?

> Support SASL encryption in network/common module
> ------------------------------------------------
>
>                 Key: SPARK-6229
>                 URL: https://issues.apache.org/jira/browse/SPARK-6229
>             Project: Spark
>          Issue Type: Sub-task
>          Components: Spark Core
>            Reporter: Marcelo Vanzin
>
> After SASL support has been added to network/common, supporting encryption 
> should be rather simple. Encryption is supported for DIGEST-MD5 and GSSAPI. 
> Since the latter requires a valid kerberos login to work (and so doesn't 
> really work with executors), encryption would require the use of DIGEST-MD5.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to