public void Should_Not_Filter_Api_Key_With_Invalid_Key() { var id = Convert.ToString(Guid.NewGuid()); var apiLog = Utility.GetApiLog(); apiLog.Id = id; apiLog.SetValue("ApiKey", Utility.CreateMapWithValue("-apikey", "7867YIUUI")); var filter = new ApiKeyFilter(); var filteredLog = filter.Apply(apiLog); var formatter = JsonLogFormatter.Instance; var firehoseSink = Utility.GetFirehoseSink(); var redisSink = Utility.GetRedisSink(); var compositeSink = Utility.GetCompositeSink(formatter, redisSink, firehoseSink); var logWriter = new LogWriter(formatter, compositeSink); logWriter.WriteAsync(filteredLog).GetAwaiter().GetResult(); //Thread.Sleep(60000); var logData = Utility.GetEsLogDataById(id); var esLogId = string.Empty; var expected = "-apikey=7867YIUUI"; string actual; logData.TryGetValue("ApiKey", out actual); Assert.AreEqual(expected, actual); }
public static HttpApiFactory <IOsuApiClient> CreateFactory(IEnumerable <string> apiKeys, Action <HttpApiConfig> options = null) { var keyFilter = new ApiKeyFilter(apiKeys); HttpApiFactory <IOsuApiClient> httpApiFactory = CreateFactory(keyFilter, options); return(httpApiFactory); }
public static HttpApiFactory <IOsuApiClient> CreateFactory(params string[] apiKeys) { var keyFilter = new ApiKeyFilter(apiKeys); HttpApiFactory <IOsuApiClient> httpApiFactory = CreateFactory(keyFilter); return(httpApiFactory); }
public void WhenApiKeyLengthGreaterThanFive_MaskingShouldHappen(string apiKey, string expected) { var filter = new ApiKeyFilter(); var filteredLog = filter.Apply(new ApiLog { RequestHeaders = { { "header1", "value1" }, { "oski-apikey", apiKey } } }); Assert.NotNull(filteredLog); var headers = filteredLog.GetFields().FirstOrDefault(x => x.Key == "rq_headers").Value as Map; Assert.NotNull(headers); Assert.Equal(expected, headers.Value["oski-apikey"]); }
private static HttpApiFactory <IOsuApiClient> CreateFactory(ApiKeyFilter keyFilter, Action <HttpApiConfig> options = null) { return(new HttpApiFactory <IOsuApiClient>() .ConfigureHttpApiConfig(c => { var formatter = new JsonFormatter(); formatter.Settings = s => { s.DateTimeZoneHandling = DateTimeZoneHandling.Utc; s.NullValueHandling = NullValueHandling.Ignore; }; c.JsonFormatter = formatter; c.GlobalFilters.Add(keyFilter); options?.Invoke(c); })); }
public async Task <IActionResult> Filter([FromBody] ApiKeyFilter filter) { PaginationResult <SensateApiKey> keys; filter ??= new ApiKeyFilter() { Limit = 0, Skip = 0, IncludeRevoked = false }; filter.Limit ??= 0; filter.Skip ??= 0; if (filter.Types == null || filter.Types.Count <= 0) { filter.Types = new List <ApiKeyType> { ApiKeyType.ApiKey, ApiKeyType.SystemKey }; } try { keys = await this._keys.FilterAsync(this.CurrentUser, filter.Types, filter.Query, filter.IncludeRevoked, filter.Skip.Value, filter.Limit.Value).AwaitBackground(); } catch (Exception ex) { this.m_logger.LogInformation(ex, "Failed to fetch keys!"); return(this.BadRequest(new Status { Message = "Unable to fetch API keys", ErrorCode = ReplyCode.UnknownError })); } return(this.Ok(keys)); }