private string GetAddress(ActionExecutingContext context) { var address = GetHeader(context, "TENJIN-CLIENT-IP"); if (TenjinUtils.IsStringNotEmpty(address)) { return(address); } address = GetHeader(context, "CF-Connecting-IP"); if (TenjinUtils.IsStringNotEmpty(address)) { return(address); } address = GetHeader(context, "X-Forwarded-For"); if (TenjinUtils.IsStringNotEmpty(address)) { return(address); } address = context.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); if (TenjinUtils.IsStringNotEmpty(address)) { return(address); } return(string.Empty); }
private static string GetBearerToken(ActionContext context) { if (!context.HttpContext.Request.Headers.TryGetValue(TenjinConstants.AUTHORIZATION_HEADER_NAME, out var values)) { return(string.Empty); } var header = values.FirstOrDefault(); return(TenjinUtils.IsStringNotEmpty(header) && header.StartsWith(TenjinConstants.BEARER_AUTHORIZATION_NAME, StringComparison.OrdinalIgnoreCase) ? header : string.Empty); }
public FilterDefinition <T> GetPreExpression <T>() where T : BaseEntity { var expression = Builders <T> .Filter.Where(x => true); if (TenjinUtils.IsStringNotEmpty(_keyword)) { if (_keyword.Contains("*") && TenjinRefUtils.GenerateTextIndexes <T>(out var _)) { expression = Builders <T> .Filter.And(expression, Builders <T> .Filter.Text(_keyword.Replace("*", " ").Trim())); } else { var patterns = Regex.Matches(_keyword, "([a-zA-Z0-9]*)") .Select(x => x.Value?.Trim()).Where(x => !string.IsNullOrEmpty(x)) .Select(x => Builders <T> .Filter.Regex("ValueToSearch", new BsonRegularExpression(x))); expression = Builders <T> .Filter.And(expression, Builders <T> .Filter.Or(patterns)); } } return(Builders <T> .Filter.And(expression.Concat(_definitions.Where(x => x.GetStage() == HttpExpressionDefinition.PRE_STAGE).Select(x => x.GetDefinition <T>())))); }