私は 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
ありがとう