protected string Sanitise(IErrorditeConfiguration configuration, string key, string value) { foreach (var paramToSanitise in configuration.SanitisedParams) { if (paramToSanitise.Match == SanitiseMatchType.Exact && paramToSanitise.Name.ToLowerInvariant() == key.ToLowerInvariant()) return "***SECRET***"; if (paramToSanitise.Match == SanitiseMatchType.Contains && key.Contains(paramToSanitise.Name)) return "***SECRET***"; } return value; }
public ErrorData Collect(Exception exception, IErrorditeConfiguration configuration) { if (exception == null) return new ErrorData(); var data = new ErrorData(); foreach (var key in exception.Data.Keys) { AddIfNotEmpty(string.Format("Exception.{0}", key), Sanitise(configuration, key.ToString(), exception.Data[key].ToString()), data); } return data; }
public ErrorData Collect(Exception e, IErrorditeConfiguration configuration) { var context = HttpContext.Current; if (context == null) return null; var data = new ErrorData(); AddIfNotEmpty("HttpMethod", context.Request.HttpMethod, data); if(context.Request.UrlReferrer != null) AddIfNotEmpty("Referrer", context.Request.UrlReferrer.AbsoluteUri, data); if (context.Request.Form.Count > 0) { foreach(var key in context.Request.Form.Keys) { AddIfNotEmpty(string.Format("Form.{0}", key), Sanitise(configuration, key.ToString(), context.Request.Form[key.ToString()]), data); } } if (context.Request.Headers.Count > 0) { foreach (string key in context.Request.Headers.Keys) { switch (key) { case "User-Agent": continue; } AddIfNotEmpty(string.Format("Header.{0}", key), Sanitise(configuration, key, context.Request.Headers[key]), data); } } return data; }