Ich benutze Grpc-Java und bekomme die Metadaten von ServerInterceptor, aber ich bekomme unten Informationen ohne Client-IP-Adresse, die Autorität ist Server-IP, wie kann ich den Client IP bekommen ?Vielen Dank.Wie bekomme ich Client-IP von Request Metadaten mit Grpc-Java
Metadaten ({: scheme = [HTTP]: method = [post]: path = [/ test/Test1], : Autorität = [192.168.199.9:50051], grpc-encoding = [ Identität], grpc-accept-encoding = [Identität, deflate, gzip], te = [Anhänger], content-type = [Anwendung/grpc], Benutzer-Agent = [grpc-objc/0.13.0 grpc- c/0.13.0 (ios)]})
Wie kann ich REMOTE_ADDR_KEY in Stream-Listener bekommen? Muss ich ThreadLocal jedes Mal verwenden, um diese Informationen abzurufen? –
Das Muster, das wir vorschlagen, ist, einen einzigen zentralen "Auth-Policy" -Abfänger zu haben, der auf REMOTE_ADDR_KEY zugreifen und dann ein Objekt auf den Kontext setzen würde (was [Contexts.interceptCall()] (http://www.grpc.io/ grpc-java/javadoc/io/grpc/Contexts.html # interceptCall-io.grpc.Context-io.grpc.MethodDescriptor-io.grpc.ServerCall-io.grpc.Metadata-io.grpc.ServerCallHandler-) macht relativ einfach) –