I think you're chasing a rabbit down its hole, Clay. Those are static
methods on RpcServer. You don't need an instance of RpcServer to invoke
them :)
(If there's still a larger question about getting RegionServerServices
that is orthogonal to just the client-IP, let me know. Ignoring the rest
of the details for the moment..)
On 9/21/18 5:36 PM, Clay Baenziger (BLOOMBERG/ 731 LEX) wrote:
Hi Josh,
Erg, I see all my MUA stripped my in-line links from the original mail; sorry
for the lack of context.
Yes, the RpcServer API is intact. But I don't see how to get access to an
RpcServer object from a coprocessor now?
Previously, I would have done on my coprocessor's environment object
getRegionServerSerivces():
({https://hbase.apache.org/1.2/apidocs/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html#getRegionServerServices--})
But now that API call has gone
away:({https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html})?
Sorry if I'm being dense but I don't see a way to get access outside the scope
of the coprocessor to get the handler thread's RPC without
getRegionServerServices()?
-Clay
From: [email protected] At: 09/21/18 17:25:49To: [email protected]
Subject: Re: HBase 2.x getRegionServerServices for Client IPAddress Access
Hey Clay!
Looking at branch-2.0, I am seeing RpcServer#getRemoteAddress() or
RpcServer#getRemoteIp() which are static calls that you should be able
to execute in the Master or RegionServer (when running in the context of
an Rpc handler thread, that is.
On 9/21/18 11:12 AM, Clay Baenziger (BLOOMBERG/ 731 LEX) wrote:
Hi all,
I've been playing around trying to add client location based ACL controls. (Akin to
the GRANT user@<network specifier> type of access one has in MySQL, et. al.) My
nascent work has been on HBase 1.x but I missed that getRegionServerSerivces went
away in 2.x[1]. Is there a way to now get to the RpcServer for a getRemoteIp() call
from e.g. AccessController now that anyone can think of or should I propose adding a
get remoteIp() method for the coprocessor environments?
-Clay
[1]: At least that's what I gather by:
* HBase 1.2 RegionCoprocessorEnvironment JavaDocs vs current JavaDocs
* The discussion in and referenced by HBASE-19007