All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.denimgroup.threadfix.cli.VulnSearchParameterParser Maven / Gradle / Ivy

////////////////////////////////////////////////////////////////////////
//
//     Copyright (c) 2009-2016 Denim Group, Ltd.
//
//     The contents of this file are subject to the Mozilla Public License
//     Version 2.0 (the "License"); you may not use this file except in
//     compliance with the License. You may obtain a copy of the License at
//     http://www.mozilla.org/MPL/
//
//     Software distributed under the License is distributed on an "AS IS"
//     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
//     License for the specific language governing rights and limitations
//     under the License.
//
//     The Original Code is ThreadFix.
//
//     The Initial Developer of the Original Code is Denim Group, Ltd.
//     Portions created by Denim Group, Ltd. are Copyright (C)
//     Denim Group, Ltd. All Rights Reserved.
//
//     Contributor(s): Denim Group, Ltd.
//
////////////////////////////////////////////////////////////////////////
package com.denimgroup.threadfix.cli;

import com.denimgroup.threadfix.VulnerabilityInfo;
import com.denimgroup.threadfix.remote.ThreadFixRestClient;
import com.denimgroup.threadfix.remote.response.RestResponse;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import static com.denimgroup.threadfix.CollectionUtils.list;

/**
 * Created by mac on 5/22/14.
 */
public class VulnSearchParameterParser extends GenericParameterParser {

    static final private List validParameters = list("genericVulnerabilityIds", "teamIds",
            "applicationIds", "scannerNames", "genericSeverityValues", "numberVulnerabilities", "parameter",
            "path", "startDate", "endDate", "showOpen", "showClosed", "showFalsePositive", "showHidden", "numberMerged",
            "showDefectPresent", "showDefectNotPresent", "showDefectOpen", "showDefectClosed",
            "showInconsistentClosedDefectNeedsScan", "showInconsistentClosedDefectOpenInScan",
            "showInconsistentOpenDefect", "includeCustomText");

    public static RestResponse processVulnerabilitySearchParameters(ThreadFixRestClient client,
                                                                                         String... args) {

        setParameters(collapseParameters(args)); // This makes me cringe but it's single-threaded right?

        checkKeyValueArguments(validParameters);

        return client.searchVulnerabilities(
                getIntegerArray("genericVulnerabilityIds"),
                getIntegerArray("teamIds"),
                getIntegerArray("applicationIds"),
                getStringArray("scannerNames"),
                getIntegerArray("genericSeverityValues"),
                getIntegerValue("numberVulnerabilities"),
                getStringValue("parameter"),
                getStringValue("path"),
                getDateValue("startDate"),
                getDateValue("endDate"),
                getBooleanValue("showOpen"),
                getBooleanValue("showClosed"),
                getBooleanValue("showFalsePositive"),
                getBooleanValue("showHidden"),
                getIntegerValue("numberMerged"),
                getBooleanValue("showDefectPresent"),
                getBooleanValue("showDefectNotPresent"),
                getBooleanValue("showDefectOpen"),
                getBooleanValue("showDefectClosed"),
                getBooleanValue("showInconsistentClosedDefectNeedsScan"),
                getBooleanValue("showInconsistentClosedDefectOpenInScan"),
                getBooleanValue("showInconsistentOpenDefect"),
                getBooleanValue("includeCustomText")
        );
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy