You must write your own gRPC interceptor which gets the IP from the call attributes and attaches it to the gRPC context. Then you can access it by retrieving the context in the RPC handler itself. Again, this is described, incompletely, at [1]. gRPC (I believe intentionally?) makes this difficult as depending on the client IP can be an antipattern. See [2].
[1]: https://github.com/grpc/grpc-java/issues/5489 [2]: https://gist.github.com/lidavidm/fe035b40dc153753bc03280dd604bc35 -David On Fri, Oct 1, 2021, at 17:30, Mohamed Abdelhakem wrote: > > > On 2021/09/13 14:18:21, "David Li" <lidav...@apache.org> wrote: > > Hello, > > > > For this, you will have to depend on the fact that Flight is currently > > implemented with gRPC. This means: > > 1. Take a dependency on flight-grpc, > > 2. Configure a plain gRPC server following the grpc-java docs, > > 3. Add the Flight service to the gRPC server via FlightGrpcUtils[1] > > Then you can get the peer address from grpc-java by installing a gRPC > > interceptor that reads the address and places it in the gRPC context. From > > within the FlightProducer, you can then access the gRPC context. This is > > described briefly at [2] and you can see a short (incomplete) code snippet > > at [3]. > > > > Maybe Flight could pull this info for you, this was done for C++/Python at > > [4] - though it would be an opaque/transport-dependent string. > > > > [1]: > > https://arrow.apache.org/docs/java/reference/org/apache/arrow/flight/FlightGrpcUtils.html#createFlightService-org.apache.arrow.memory.BufferAllocator-org.apache.arrow.flight.FlightProducer-org.apache.arrow.flight.auth.ServerAuthHandler-java.util.concurrent.ExecutorService- > > [2]: https://stackoverflow.com/a/52633506 > > [3]: https://github.com/grpc/grpc-java/issues/5489 > > [4]: https://issues.apache.org/jira/browse/ARROW-9175 > > > > Best, > > David > > > I have done most of those steps, but i missed the way to access the ip from > the FlightProducer RPCs context, Context is empty, I need to attach the ip > with each call context >