public void SetAuthCredentials(LokiCredentials credentials) { if (string.IsNullOrEmpty(credentials.Username) || string.IsNullOrEmpty(credentials.Password)) { return; } var headers = HttpClient.DefaultRequestHeaders; if (headers.Any(x => x.Key == "Authorization")) { return; } var token = Base64Encode($"{credentials.Username}:{credentials.Password}"); headers.Add("Authorization", $"Basic {token}"); }
private static LoggerConfiguration LokiHttpImpl(this LoggerSinkConfiguration sinkConfiguration, LokiCredentials credentials, IEnumerable <LokiLabel> logLabels, IHttpClient httpClient) { var formatter = logLabels != null ? new LokiBatchFormatter(logLabels) : new LokiBatchFormatter(); var client = httpClient ?? new LokiHttpClient(); if (client is LokiHttpClient lokiHttpClient) { lokiHttpClient.SetAuthCredentials(credentials); } return(sinkConfiguration.Http(LokiRouteBuilder.BuildPostUri(credentials.Url), batchFormatter: formatter, httpClient: client)); }
public static LoggerConfiguration LokiHttp(this LoggerSinkConfiguration sinkConfiguration, LokiCredentials credentials, IEnumerable <LokiLabel> logLabels = null, LokiHttpClient httpClient = null) => LokiHttpImpl(sinkConfiguration, credentials, logLabels, httpClient);