using Grpc.Core.Interceptors; using Microsoft.Extensions.Configuration; using MxGateway.Server.Configuration; namespace MxGateway.Server.Security.Authorization; public static class GrpcAuthorizationServiceCollectionExtensions { public static IServiceCollection AddGatewayGrpcAuthorization(this IServiceCollection services) { services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services .AddOptions() .Configure((grpcOptions, configuration) => { ProtocolOptions protocolOptions = new(); configuration.GetSection("MxGateway:Protocol").Bind(protocolOptions); grpcOptions.MaxReceiveMessageSize = protocolOptions.MaxGrpcMessageBytes; grpcOptions.MaxSendMessageSize = protocolOptions.MaxGrpcMessageBytes; }); services.AddGrpc(options => options.Interceptors.Add()); return services; } }