11using Grpc . Core ;
22using Grpc . Core . Interceptors ;
3+ using Microsoft . Extensions . Primitives ;
4+ using Microsoft . Net . Http . Headers ;
35using Netcorext . Contracts ;
46using Netcorext . Extensions . Grpc . Helpers ;
57using Netcorext . Extensions . Grpc . Options ;
@@ -26,11 +28,15 @@ public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(TR
2628 var entries = _httpContextAccessor . HttpContext ? . Request . Headers
2729 . Where ( _options . Handler )
2830 . Select ( t => new Metadata . Entry ( t . Key . ToLower ( ) , t . Value ) )
29- . ToArray ( ) ;
31+ . ToList ( ) ?? new List < Metadata . Entry > ( ) ;
3032
3133 var authorization = _contextState . GetAuthorizationToken ( _httpContextAccessor . HttpContext ? . Request . Headers ) ;
34+ var authorizationHeader = new KeyValuePair < string , StringValues > ( HeaderNames . Authorization , authorization ) ;
3235
33- if ( entries ? . Any ( ) != true )
36+ if ( _options . Handler ( authorizationHeader ) )
37+ entries . Add ( new Metadata . Entry ( authorizationHeader . Key , authorizationHeader . Value ) ) ;
38+
39+ if ( entries . Count == 0 )
3440 return continuation ( request , context ) ;
3541
3642 var metadata = new Metadata ( ) ;
@@ -52,11 +58,15 @@ public override TResponse BlockingUnaryCall<TRequest, TResponse>(TRequest reques
5258 var entries = _httpContextAccessor . HttpContext ? . Request . Headers
5359 . Where ( _options . Handler )
5460 . Select ( t => new Metadata . Entry ( t . Key . ToLower ( ) , t . Value ) )
55- . ToArray ( ) ;
61+ . ToList ( ) ?? new List < Metadata . Entry > ( ) ;
5662
5763 var authorization = _contextState . GetAuthorizationToken ( _httpContextAccessor . HttpContext ? . Request . Headers ) ;
64+ var authorizationHeader = new KeyValuePair < string , StringValues > ( HeaderNames . Authorization , authorization ) ;
65+
66+ if ( _options . Handler ( authorizationHeader ) )
67+ entries . Add ( new Metadata . Entry ( authorizationHeader . Key , authorizationHeader . Value ) ) ;
5868
59- if ( entries ? . Any ( ) != true )
69+ if ( entries . Count == 0 )
6070 return continuation ( request , context ) ;
6171
6272 var metadata = new Metadata ( ) ;
0 commit comments