Skip to content

Commit a5ce47e

Browse files
committed
Update.
Signed-off-by: xuezhaojun <zxue@redhat.com>
1 parent a004514 commit a5ce47e

3 files changed

Lines changed: 13 additions & 17 deletions

File tree

pkg/cloudevents/server/grpc/authz/kube/sar.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,6 @@ func NewSARAuthorizer(kubeClient kubernetes.Interface) *SARAuthorizer {
6262
}
6363
}
6464

65-
func (s *SARAuthorizer) FullMethodName() string {
66-
return pbv1.CloudEventService_Subscribe_FullMethodName
67-
}
68-
6965
func (s *SARAuthorizer) AuthorizeRequest(ctx context.Context, req any) error {
7066
pReq, ok := req.(*pbv1.PublishRequest)
7167
if !ok {
@@ -95,6 +91,10 @@ func (s *SARAuthorizer) AuthorizeStream(ctx context.Context, ss grpc.ServerStrea
9591
return ss, nil
9692
}
9793

94+
if info.FullMethod != pbv1.CloudEventService_Subscribe_FullMethodName {
95+
return nil, fmt.Errorf("unsupported service full method %s for SARAuthorizer", info.FullMethod)
96+
}
97+
9898
var req pbv1.SubscriptionRequest
9999
if err := ss.RecvMsg(&req); err != nil {
100100
return nil, err

pkg/server/grpc/authz/interface.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,4 @@ type UnaryAuthorizer interface {
1212

1313
type StreamAuthorizer interface {
1414
AuthorizeStream(ctx context.Context, ss grpc.ServerStream, info *grpc.StreamServerInfo) (grpc.ServerStream, error)
15-
FullMethodName() string
1615
}

pkg/server/grpc/server.go

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,12 @@ type GRPCServer struct {
2424
registerFuncs []func(*grpc.Server)
2525
authenticators []authn.Authenticator
2626
unaryAuthorizers []authz.UnaryAuthorizer
27-
streamAuthorizers map[string][]authz.StreamAuthorizer
27+
streamAuthorizers []authz.StreamAuthorizer
2828
}
2929

3030
func NewGRPCServer(opt *GRPCServerOptions) *GRPCServer {
3131
return &GRPCServer{
32-
options: opt,
33-
streamAuthorizers: make(map[string][]authz.StreamAuthorizer),
32+
options: opt,
3433
}
3534
}
3635

@@ -50,7 +49,7 @@ func (b *GRPCServer) WithUnaryAuthorizer(authorizer authz.UnaryAuthorizer) *GRPC
5049
}
5150

5251
func (b *GRPCServer) WithStreamAuthorizer(authorizer authz.StreamAuthorizer) *GRPCServer {
53-
b.streamAuthorizers[authorizer.FullMethodName()] = append(b.streamAuthorizers[authorizer.FullMethodName()], authorizer)
52+
b.streamAuthorizers = append(b.streamAuthorizers, authorizer)
5453
return b
5554
}
5655

@@ -238,7 +237,7 @@ func newAuthnStreamInterceptor(authenticators ...authn.Authenticator) grpc.Strea
238237
}
239238

240239
// newAuthzStreamInterceptor is a stream interceptor that authorizes the stream request.
241-
func newAuthzStreamInterceptor(authorizers map[string][]authz.StreamAuthorizer) grpc.StreamServerInterceptor {
240+
func newAuthzStreamInterceptor(authorizers []authz.StreamAuthorizer) grpc.StreamServerInterceptor {
242241
return func(
243242
srv interface{},
244243
ss grpc.ServerStream,
@@ -247,13 +246,11 @@ func newAuthzStreamInterceptor(authorizers map[string][]authz.StreamAuthorizer)
247246
) error {
248247
var errs []error
249248

250-
if authorizers, ok := authorizers[info.FullMethod]; ok {
251-
for _, authorizer := range authorizers {
252-
if authorizedStream, err := authorizer.AuthorizeStream(ss.Context(), ss, info); err == nil {
253-
return handler(srv, authorizedStream)
254-
} else {
255-
errs = append(errs, err)
256-
}
249+
for _, authorizer := range authorizers {
250+
if authorizedStream, err := authorizer.AuthorizeStream(ss.Context(), ss, info); err == nil {
251+
return handler(srv, authorizedStream)
252+
} else {
253+
errs = append(errs, err)
257254
}
258255
}
259256

0 commit comments

Comments
 (0)