3

私は gRPC を使用しており、ServerInterceptor からリクエストのサービスの名前を取得する必要がありますが、それは不可能のようです。

基本的にServerInterceptorの実装から、呼び出される ServiceGrpc の名前を (文字列として) 知る必要があります。

public class PermissionInterceptor implements ServerInterceptor {

        @Override
        public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(
                ServerCall<ReqT, RespT> serverCall, Metadata metadata, ServerCallHandler<ReqT, RespT> handler
        ) {
            // here I need the name of RPC service that has been requested

            return handler.startCall(serverCall, metadata);
        }
}

serverCall.getMethodDescriptor()を試してみましたが、(Java) サービスの実際の名前ではなく、 protoサービスの名前が返されることに注意してください。

戻り値:

co.test.domain.transaction.TransactionService

しかし、私はこれが必要です:

co.test.domain.transaction.TransactionNeoBasicImpl

ありがとう

4

2 に答える 2