-
-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Whitelist: selector middleware doesn't work for bidirectional grpc #3376
Comments
@akoserwal |
Hi, @akoserwal. I'm Dosu, and I'm helping the Kratos team manage their backlog. I'm marking this issue as stale. Issue Summary:
Next Steps:
Thank you for your understanding and contribution! |
grpc.reflection.v1.ServerReflection/ServerReflectionInfo is a streaming RPC that has been previously discussed and cannot be overwritten by middleware. Selector works in case of unidirectional gRPC |
Thank you, akoserwal, for closing the issue! We appreciate your help in keeping the repository tidy. |
What happened:
As shown for HTTP middleware the
selector
middleware works, but not the case with grpchttps://github.com/go-kratos/beer-shop/blob/a29eae57a9baeae9969e9a7d418ff677cf494a21/app/shop/interface/internal/server/http.go#L41
How to reproduce it (as minimally and precisely as possible):
Adding selector middleware as shown https://github.com/go-kratos/beer-shop/blob/a29eae57a9baeae9969e9a7d418ff677cf494a21/app/shop/interface/internal/server/http.go#L41
for grpc middleware
Anything else we need to know?:
https://github.com/go-kratos/kratos/blob/main/middleware/selector/selector.go#L92
Selector middleware works for unary, server streaming . but it doesn't work in case of "bidirectional streaming rpc". I was using grpcurl commandline utility which by default uses bidirectional streaming rpc.
operation := info.Operation()
value of the operation in case of grpc would give
grpc.reflection.v1.ServerReflection/ServerReflectionInfo
which doesn't give info about method called.
Environment:
kratos -v
): v2.7.3go version
): 1.21cat /etc/os-release
): DarwinThe text was updated successfully, but these errors were encountered: