protected override void WriteCore(SecurityCheckPiplineResult securityCheckExecutionResults) { var obj = JsonConvert.SerializeObject(new { Url = securityCheckExecutionResults.Url, DateTime = securityCheckExecutionResults.DateTime.ToString(), Results = securityCheckExecutionResults.Select(r => new { CheckName = r.SecurityCheck.Name, Category = r.SecurityCheck.Category, HttpsOnly = r.SecurityCheck.HttpsOnly, State = GetText(r.SecurityCheckResult.State), Recommandation = r.SecurityCheckResult.Recommandation, Value = r.SecurityCheckResult.Value, HasError = r.HasError, Error = r.Exception?.ToString() }) }, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, Formatting = Formatting.Indented, TypeNameHandling = TypeNameHandling.None }); File.WriteAllText(_path, obj); }
public void Write(SecurityCheckPiplineResult securityCheckExecutionResults) { if (securityCheckExecutionResults is null) { throw new ArgumentNullException(nameof(securityCheckExecutionResults)); } WriteCore(securityCheckExecutionResults); }
/// <summary> /// Analyzes a HTTP response. /// </summary> /// <param name="httpResponse">The target response.</param> /// <returns>The results from the scan.</returns> public SecurityCheckPiplineResult Analyze(HttpResponseMessage httpResponse) { if (httpResponse is null) { throw new ArgumentNullException(nameof(httpResponse)); } var result = new SecurityCheckPiplineResult(); foreach (var securityCheck in SecurityChecks) { try { var info = securityCheck.Check(httpResponse); result.Add(securityCheck, info); } catch (Exception ex) { result.Add(securityCheck, ex); } } return(result); }
protected override void WriteCore(SecurityCheckPiplineResult securityCheckExecutionResult) { Console.WriteLine(); Console.WriteIntent(2); Console.WriteLine("Report Summary"); var checkNameColumnSize = securityCheckExecutionResult.Max(s => s.SecurityCheck.Name.Length); var valueColumnSize = securityCheckExecutionResult.Max(s => s.SecurityCheckResult.Value.Length); var groupedByType = securityCheckExecutionResult.GroupBy(r => r.SecurityCheck.Category); foreach (var group in groupedByType) { Console.WriteLine(); Console.WriteIntent(4); Console.WriteLine($"> {group.Key} checks"); Console.WriteLine(); foreach (var item in group) { Write(item, valueColumnSize, checkNameColumnSize); } } }
protected override void WriteCore(SecurityCheckPiplineResult securityCheckExecutionResult) { using (var textWriter = TextWriterFactory()) { textWriter.WriteLine(securityCheckExecutionResult.Url); textWriter.WriteLine(securityCheckExecutionResult.DateTime); textWriter.WriteLine("Report Summary"); var maxNameLenght = securityCheckExecutionResult.Max(r => r.SecurityCheck.Name.Length); var groupedByType = securityCheckExecutionResult.GroupBy(r => r.SecurityCheck.Category); foreach (var group in groupedByType) { textWriter.WriteLine(); textWriter.WriteLine($"> {group.Key} checks"); textWriter.WriteLine(); foreach (var item in group) { Write(textWriter, item, maxNameLenght); } } textWriter.Flush(); } }
protected abstract void WriteCore(SecurityCheckPiplineResult securityCheckExecutionResults);