[
https://issues.apache.org/jira/browse/HADOOP-2184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12545541
]
Doug Cutting commented on HADOOP-2184:
--------------------------------------
So if we elect not to yet implement this with a socket factory interface, then
I think we're back to passing it in the invocation. Owen, do you have
objections to this as a short-term technique? My concern is that the APIs for
RPC clients and servers not change incompatibly when we move to a
socket-factory. That rules out getProtocolVersion(). Call invocations are
invisible to the application, so they seem a fine place to pass tickets for now.
The API changes should be:
- on the client, the proxy constructor should take a ticket parameter;
- on a server, within a method implementation, one should be able to call a
static getTicket() to retrieve the ticket from a thread local.
In the future, we may add a socket-factory API for RPC, but that shouldn't
require changes to the above. Perhaps we'll name RPC servers with a URI
instead of an InetSocketAddress. Then we can use the URI scheme to identify a
socket factory. We can leave the existing InetSocketAddress API for
back-compatibility for a release or two, using a default socket factory. Would
that be sufficient?
But I'm okay leaving that for later. Owen?
> RPC Support for user permissions and authentication.
> ----------------------------------------------------
>
> Key: HADOOP-2184
> URL: https://issues.apache.org/jira/browse/HADOOP-2184
> Project: Hadoop
> Issue Type: New Feature
> Components: ipc
> Affects Versions: 0.15.0
> Reporter: Tsz Wo (Nicholas), SZE
> Assignee: Raghu Angadi
> Fix For: 0.16.0
>
> Attachments: HADOOP-2184-demo.patch, HADOOP-2184-demo.patch,
> HADOOP-2184-demo.patch
>
>
> Update 11/13/2007: What is proposed for 0.16.0 :
> The client can set a user ticket (as defined in HADOOP-1701) for each
> connection and that ticket is made available to RPC calls at the server. The
> client can replace the ticket at any time. The main advantage is that rest of
> the the client RPCs don't need to be aware of the user tickets.
> What RPC would ideally support in future :
> In the current version of RPC, there is no authentication or data protection.
> We propose to change the RPC framework, so that secure communication is
> possible.
> The new RPC should:
> - Compatible with current RPC
> - Allow a pluggable security implementations (see HADOOP-1701)
> - Support both secure and non-secure modes.
> Here is a rough idea:
> - Store security information (e.g. username, keys) in a ticket
> - Use the ticket to establish a RPC connection
> - Create secure sockets by the (subclass of) SocketFactory corresponding to
> the selected security implementations
> - Send the data and RPC parameters with the secure sockets
> When authentication is supported, the RPC callee should also initialize
> caller information during RPC setup and execute the RPC on the caller's
> behalf.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.