Added auth provider token to context (#6)

pull/2012/head
Sadlil Rhythom 9 years ago committed by sauman
parent 6a4054de27
commit d1d3bc022f

@ -121,11 +121,29 @@ func newStreamInterceptor() grpc.StreamServerInterceptor {
log.Println(err)
return err
}
// TODO: How to pass modified ctx?
return handler(srv, ss)
newStream := serverStreamWrapper{
ss: ss,
ctx: ctx,
}
return handler(srv, newStream)
}
}
// serverStreamWrapper wraps original ServerStream but uses modified context.
// this modified context will be available inside handler()
type serverStreamWrapper struct {
ss grpc.ServerStream
ctx context.Context
}
func (w serverStreamWrapper) Context() context.Context { return w.ctx }
func (w serverStreamWrapper) RecvMsg(msg interface{}) error { return w.ss.RecvMsg(msg) }
func (w serverStreamWrapper) SendMsg(msg interface{}) error { return w.ss.SendMsg(msg) }
func (w serverStreamWrapper) SendHeader(md metadata.MD) error { return w.ss.SendHeader(md) }
func (w serverStreamWrapper) SetHeader(md metadata.MD) error { return w.ss.SetHeader(md) }
func (w serverStreamWrapper) SetTrailer(md metadata.MD) { w.ss.SetTrailer(md) }
func splitMethod(fullMethod string) (string, string) {
if frags := strings.Split(fullMethod, "/"); len(frags) == 3 {
return frags[1], frags[2]

Loading…
Cancel
Save