use of com.checkmarx.sdk.dto.filtering.EngineFilterConfiguration in project cx-flow by checkmarx-ltd.
the class ConfigurationOverrider method overrideFilters.
private void overrideFilters(FlowOverride flowOverride, ScanRequest request, Map<String, String> overrideReport) {
Optional.ofNullable(flowOverride.getFilters()).ifPresent(override -> {
FilterFactory filterFactory = new FilterFactory();
ControllerRequest controllerRequest = new ControllerRequest(override.getSeverity(), override.getCwe(), override.getCategory(), override.getStatus(), override.getState());
FilterConfiguration filterConfig = filterFactory.getFilter(controllerRequest, null);
request.setFilter(filterConfig);
String filterDescr;
List<Filter> simpleFilters = Optional.ofNullable(filterConfig).map(FilterConfiguration::getSastFilters).map(EngineFilterConfiguration::getSimpleFilters).orElse(null);
if (CollectionUtils.isNotEmpty(simpleFilters)) {
filterDescr = simpleFilters.stream().map(Object::toString).collect(Collectors.joining(","));
} else {
filterDescr = "EMPTY";
}
overrideReport.put("filters", filterDescr);
});
}
use of com.checkmarx.sdk.dto.filtering.EngineFilterConfiguration in project cx-flow by checkmarx-ltd.
the class FilterFactory method getFilterFromComponents.
public FilterConfiguration getFilterFromComponents(String filterScript, List<Filter> simpleFilters) {
Script parsedScript = parseScriptText(filterScript);
EngineFilterConfiguration sastFilterConfig = EngineFilterConfiguration.builder().simpleFilters(simpleFilters).scriptedFilter(ScriptedFilter.builder().script(parsedScript).build()).build();
return FilterConfiguration.builder().sastFilters(sastFilterConfig).build();
}
use of com.checkmarx.sdk.dto.filtering.EngineFilterConfiguration in project checkmarx-spring-boot-java-sdk by checkmarx-ltd.
the class FilterValidatorTest method verifyScriptResult.
private static void verifyScriptResult(Script script, String severity, String status, String state, String name, String cweId, boolean expectedResult) {
ResultType finding = createFinding(status, state);
QueryType findingGroup = createFindingGroup(severity, name, cweId);
EngineFilterConfiguration filterConfiguration = createFilterConfiguration(script);
FilterValidator validator = new FilterValidator();
FilterInputFactory filterInputFactory = new FilterInputFactory(new CxProperties());
FilterInput filterInput = filterInputFactory.createFilterInputForCxSast(findingGroup, finding);
boolean actualResult = validator.passesFilter(filterInput, filterConfiguration);
assertEquals(expectedResult, actualResult, "Unexpected script filtering result.");
}
use of com.checkmarx.sdk.dto.filtering.EngineFilterConfiguration in project checkmarx-spring-boot-java-sdk by checkmarx-ltd.
the class FilterValidatorTest method validateExpectedError.
private void validateExpectedError(String scriptWithUnknownObject) {
Script script = parse(scriptWithUnknownObject);
QueryType findingGroup = createFindingGroup(SEVERITY_LOW, NAME1, CWE1);
ResultType finding = createFinding(STATUS_NEW, STATE_URGENT_ID);
EngineFilterConfiguration filterConfiguration = createFilterConfiguration(script);
FilterValidator validator = new FilterValidator();
try {
FilterInputFactory filterInputFactory = new FilterInputFactory(new CxProperties());
FilterInput filterInput = filterInputFactory.createFilterInputForCxSast(findingGroup, finding);
validator.passesFilter(filterInput, filterConfiguration);
} catch (Exception e) {
assertTrue(e instanceof CheckmarxRuntimeException, String.format("Expected %s to be thrown.", CheckmarxRuntimeException.class));
assertTrue(e.getCause() instanceof GroovyRuntimeException, String.format("Expected exception cause to be %s", GroovyRuntimeException.class));
}
}
use of com.checkmarx.sdk.dto.filtering.EngineFilterConfiguration in project checkmarx-spring-boot-java-sdk by checkmarx-ltd.
the class ScaScanner method applyFilterToResults.
@Override
protected void applyFilterToResults(AstScaResults combinedResults, ScanParams scanParams) {
EngineFilterConfiguration filterConfig = extractFilterConfigFrom(scanParams);
List<Finding> findingsToRetain = new ArrayList<>();
combinedResults.getScaResults().getFindings().forEach(finding -> {
if (passesFilter(finding, filterConfig)) {
findingsToRetain.add(finding);
}
});
combinedResults.getScaResults().setFindings(findingsToRetain);
}
Aggregations