Skip to content
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 grpc #3376

Open
akoserwal opened this issue Jul 19, 2024 · 1 comment
Open

Whitelist: selector middleware doesn't work for grpc #3376

akoserwal opened this issue Jul 19, 2024 · 1 comment
Labels

Comments

@akoserwal
Copy link
Contributor

akoserwal commented Jul 19, 2024

What happened:

As shown for HTTP middleware the selector middleware works, but not the case with grpc
https://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 version (use kratos -v): v2.7.3
  • Go version (use go version): 1.21
  • OS (e.g: cat /etc/os-release): Darwin
  • Others:
@akoserwal akoserwal added the bug Something isn't working label Jul 19, 2024
@shenqidebaozi
Copy link
Member

@akoserwal grpc.reflection.v1.ServerReflection/ServerReflectionInfo is a streaming RPC that has been previously discussed and cannot be overwritten by middleware at this time. I will also carefully review the previous communication recently.

@shenqidebaozi shenqidebaozi added feature and removed bug Something isn't working labels Jul 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants