public List<IO2Finding> invokeMultipleXRules() { // executing findings from pathToOzastmFilesToLoad var o2Findings = XUtils_Findings_v0_1.loadMultipleOzasmtFiles(pathToOzastmFilesToLoad); // run filter that gets only Traces var onlyTraces = new XRule_Findings_Filter().onlyTraces(o2Findings); // which have getParameter as source var results = new XRule_Findings_Filter().whereSource_Contains(onlyTraces,"getParameter"); return results; }
public void task4_CalculateStrutsFindings() { O2Cmd.log.write("TASK #4: Calculate Struts Findings"); // check if there are Struts Mappings var folderWithStrutsMappings = Path.Combine(folderWithArtifacts_Phase2, "Struts Mappings"); if (Directory.Exists(folderWithStrutsMappings)) { //Assert.That(Directory.Exists(folderWithStrutsMappings), "Directory with struts mappings did not exist: " + folderWithStrutsMappings); // check if we have the filtered findings files required var findingsWith_KnownSinks = Path.Combine(folderWithArtifacts_Phase3, "Findings with Known Sinks.ozasmt"); Assert.That(File.Exists(findingsWith_KnownSinks), "Could not find findingsWith_KnownSinks: " + findingsWith_KnownSinks); // load findings var o2Findings_KnownSinks = XUtils_Findings_v0_1.loadFindingsFile(findingsWith_KnownSinks); // extract just the ones needed for the struts mappings var o2Findings = new XRule_Findings_Filter().whereSourceAndSink_ContainsRegex(o2Findings_KnownSinks, "getParameter", "setAttribute"); o2Findings.AddRange(new XRule_Findings_Filter().whereSourceAndSink_ContainsRegex(o2Findings_KnownSinks, "getAttribute", "print")); foreach (var strutsMappingsFile in Files.getFilesFromDir_returnFullPath(folderWithStrutsMappings)) { var fileName = Path.GetFileName(strutsMappingsFile); var projectName = Path.GetFileNameWithoutExtension(strutsMappingsFile); O2Cmd.log.write("Processing file {0} from project {1}", fileName, projectName); // load struts mappings var strutsMapping = XUtils_Struts_v0_1.loadStrutsMappingsFromFile(strutsMappingsFile); Assert.That(strutsMapping != null, "strutsMapping was null"); // execute the struts rule var o2Results = XRule_Struts.strutsRule_fromGetParameterToPringViaGetSetAttributeJoins(o2Findings, strutsMapping); // make sure we had results //Assert.That(o2Results.Count > 0 , "There were no results"); if (o2Results.Count == 0) { O2Cmd.log.error("there were no results in task4_CalculateStrutsFindings"); } else { // save results var targetFolder = Path.Combine(folderWithArtifacts_Phase3, "Struts Mappings"); Files.checkIfDirectoryExistsAndCreateIfNot(targetFolder); var fileWithSavedResults = Path.Combine(targetFolder, projectName + ".ozasmt"); XUtils_Findings_v0_1.saveFindings(o2Results, fileWithSavedResults); // make sure saved file exists Assert.That(File.Exists(fileWithSavedResults), "fileWithSavedResults did not exist: " + fileWithSavedResults); O2Cmd.log.write("All OK. There were {0} results \r\nsaved to: {1}", o2Results.Count, fileWithSavedResults); } } } }
public List <IO2Finding> invokeMultipleXRules() { // executing findings from pathToOzastmFilesToLoad var o2Findings = XUtils_Findings_v0_1.loadMultipleOzasmtFiles(pathToOzastmFilesToLoad); // run filter that gets only Traces var onlyTraces = new XRule_Findings_Filter().onlyTraces(o2Findings); // which have getParameter as source var results = new XRule_Findings_Filter().whereSource_Contains(onlyTraces, "getParameter"); return(results); }
public static List<IO2Finding> saveQuery(List<IO2Finding> o2FindingsInFile, string targetFolder, string fileName, string sourceRegEx, string sinkRegex, string fileNamePrefix, string fileNamePostfix, bool removeFindingsFromSourceList) { O2Cmd.log.write("Executing query: Source = {0} Sink = {1}", sourceRegEx, sinkRegex); var results = new XRule_Findings_Filter().whereSourceAndSink_ContainsRegex(o2FindingsInFile, sourceRegEx, sinkRegex); O2Cmd.log.write(" Query returned {0} results", results.Count); var targetFile = Path.Combine(targetFolder, fileNamePrefix + fileName + " - " + fileNamePostfix); if (false == targetFile.EndsWith(".ozasmt")) targetFile += ".ozasmt"; if (results.Count > 0) { XUtils_Findings_v0_1.saveFindings(results, targetFile); if (removeFindingsFromSourceList) removeFindingsFromList(o2FindingsInFile, results); } return results; }
public static List <IO2Finding> saveQuery(List <IO2Finding> o2FindingsInFile, string targetFolder, string fileName, string sourceRegEx, string sinkRegex, string fileNamePrefix, string fileNamePostfix, bool removeFindingsFromSourceList) { O2Cmd.log.write("Executing query: Source = {0} Sink = {1}", sourceRegEx, sinkRegex); var results = new XRule_Findings_Filter().whereSourceAndSink_ContainsRegex(o2FindingsInFile, sourceRegEx, sinkRegex); O2Cmd.log.write(" Query returned {0} results", results.Count); var targetFile = Path.Combine(targetFolder, fileNamePrefix + fileName + " - " + fileNamePostfix); if (false == targetFile.EndsWith(".ozasmt")) { targetFile += ".ozasmt"; } if (results.Count > 0) { XUtils_Findings_v0_1.saveFindings(results, targetFile); if (removeFindingsFromSourceList) { removeFindingsFromList(o2FindingsInFile, results); } } return(results); }
public void task4_CalculateStrutsFindings() { O2Cmd.log.write("TASK #4: Calculate Struts Findings"); // check if there are Struts Mappings var folderWithStrutsMappings = Path.Combine(folderWithArtifacts_Phase2, "Struts Mappings"); if (Directory.Exists(folderWithStrutsMappings)) { //Assert.That(Directory.Exists(folderWithStrutsMappings), "Directory with struts mappings did not exist: " + folderWithStrutsMappings); // check if we have the filtered findings files required var findingsWith_KnownSinks= Path.Combine(folderWithArtifacts_Phase3,"Findings with Known Sinks.ozasmt"); Assert.That(File.Exists(findingsWith_KnownSinks),"Could not find findingsWith_KnownSinks: " + findingsWith_KnownSinks); // load findings var o2Findings_KnownSinks = XUtils_Findings_v0_1.loadFindingsFile(findingsWith_KnownSinks); // extract just the ones needed for the struts mappings var o2Findings = new XRule_Findings_Filter().whereSourceAndSink_ContainsRegex(o2Findings_KnownSinks,"getParameter","setAttribute"); o2Findings.AddRange(new XRule_Findings_Filter().whereSourceAndSink_ContainsRegex(o2Findings_KnownSinks,"getAttribute","print")); foreach(var strutsMappingsFile in Files.getFilesFromDir_returnFullPath(folderWithStrutsMappings)) { var fileName = Path.GetFileName(strutsMappingsFile); var projectName = Path.GetFileNameWithoutExtension(strutsMappingsFile); O2Cmd.log.write("Processing file {0} from project {1}", fileName, projectName); // load struts mappings var strutsMapping = XUtils_Struts_v0_1.loadStrutsMappingsFromFile(strutsMappingsFile); Assert.That(strutsMapping!=null, "strutsMapping was null"); // execute the struts rule var o2Results = XRule_Struts.strutsRule_fromGetParameterToPringViaGetSetAttributeJoins(o2Findings , strutsMapping) ; // make sure we had results //Assert.That(o2Results.Count > 0 , "There were no results"); if (o2Results.Count==0) O2Cmd.log.error("there were no results in task4_CalculateStrutsFindings"); else { // save results var targetFolder = Path.Combine(folderWithArtifacts_Phase3, "Struts Mappings"); Files.checkIfDirectoryExistsAndCreateIfNot(targetFolder); var fileWithSavedResults = Path.Combine(targetFolder,projectName + ".ozasmt"); XUtils_Findings_v0_1.saveFindings(o2Results,fileWithSavedResults); // make sure saved file exists Assert.That(File.Exists(fileWithSavedResults), "fileWithSavedResults did not exist: " + fileWithSavedResults); O2Cmd.log.write("All OK. There were {0} results \r\nsaved to: {1}", o2Results.Count, fileWithSavedResults); } } } }