/*******************************************************************************
* Copyright (c) 2011 Subgraph.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Subgraph - initial API and implementation
******************************************************************************/
package com.subgraph.vega.impl.scanner;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.cookie.Cookie;
import com.subgraph.vega.api.scanner.IFormCredential;
import com.subgraph.vega.api.scanner.IScannerConfig;
import com.subgraph.vega.impl.scanner.forms.FormCredential;
public class ScannerConfig implements IScannerConfig {
private URI baseURI;
private List<Cookie> cookieList;
private List<String> modulesList;
private List<String> exclusions;
private String basicUsername;
private String basicPassword;
private String basicRealm;
private String basicDomain;
private String ntlmUsername;
private String ntlmPassword;
private boolean logAllRequests;
private boolean displayDebugOutput;
private int maxRequestsPerSecond = DEFAULT_MAX_REQUEST_PER_SECOND;
private int maxDescendants = DEFAULT_MAX_DESCENDANTS;
private int maxChildren = DEFAULT_MAX_CHILDREN;
private int maxDepth = DEFAULT_MAX_DEPTH;
private int maxDuplicatePaths = DEFAULT_MAX_DUPLICATE_PATHS;
private int maxParameterCount = DEFAULT_MAX_PARAMETER_COUNT;
private int maxConnections = DEFAULT_MAX_CONNECTIONS;
private int maxResponseKilobytes = DEFAULT_MAX_RESPONSE_KILOBYTES;
private final List<IFormCredential> formCredentials = new ArrayList<IFormCredential>();
@Override
public void setBaseURI(URI baseURI) {
this.baseURI = baseURI;
}
@Override
public void setCookieList(List<Cookie> list) {
cookieList = list;
}
@Override
public void setModulesList(List<String> modules) {
modulesList = modules;
}
@Override
public void setExclusions(List<String> exclusionsList) {
exclusions = exclusionsList;
}
@Override
public void setBasicUsername(String username) {
basicUsername = username;
}
@Override
public void setBasicPassword(String password) {
basicPassword = password;
}
@Override
public void setBasicRealm(String realm) {
basicRealm = realm;
}
@Override
public void setBasicDomain(String domain) {
basicDomain = domain;
}
@Override
public void setNtlmUsername(String username) {
ntlmUsername = username;
}
@Override
public void setNtlmPassword(String password) {
ntlmPassword = password;
}
@Override
public URI getBaseURI() {
return baseURI;
}
@Override
public List<Cookie> getCookieList() {
return cookieList;
}
@Override
public List<String> getModulesList() {
return modulesList;
}
@Override
public List<String> getExclusions() {
return exclusions;
}
@Override
public String getBasicUsername() {
return basicUsername;
}
@Override
public String getBasicPassword() {
return basicPassword;
}
@Override
public String getBasicRealm() {
return basicRealm;
}
@Override
public String getBasicDomain() {
return basicDomain;
}
@Override
public String getNtlmUsername() {
return ntlmUsername;
}
@Override
public String getNtlmPassword() {
return ntlmPassword;
}
@Override
public void setLogAllRequests(boolean flag) {
logAllRequests = flag;
}
@Override
public boolean getLogAllRequests() {
return logAllRequests;
}
@Override
public void setDisplayDebugOutput(boolean flag) {
displayDebugOutput = flag;
}
@Override
public boolean getDisplayDebugOutput() {
return displayDebugOutput;
}
@Override
public boolean getDirectoryInjectionChecksFlag() {
return true;
}
@Override
public boolean getNonParameterFileInjectionChecksFlag() {
return false;
}
public IFormCredential createFormCredential(String username, String password) {
final IFormCredential credential = new FormCredential(username, password);
formCredentials.add(credential);
return credential;
}
@Override
public List<IFormCredential> getFormCredentials() {
return formCredentials;
}
@Override
public void setMaxRequestsPerSecond(int rps) {
maxRequestsPerSecond = rps;
}
@Override
public int getMaxRequestsPerSecond() {
return maxRequestsPerSecond;
}
@Override
public int getMaxDescendants() {
return maxDescendants;
}
@Override
public int getMaxChildren() {
return maxChildren;
}
@Override
public int getMaxDepth() {
return maxDepth;
}
@Override
public void setMaxDescendants(int value) {
maxDescendants = value;
}
@Override
public void setMaxChildren(int value) {
maxChildren = value;
}
@Override
public void setMaxDepth(int value) {
maxDepth = value;
}
@Override
public int getMaxDuplicatePaths() {
return maxDuplicatePaths;
}
@Override
public void setMaxDuplicatePaths(int value) {
maxDuplicatePaths = value;
}
@Override
public void setMaxParameterCount(int value) {
this.maxParameterCount = value;
}
@Override
public int getMaxParameterCount() {
return maxParameterCount;
}
@Override
public void setMaxConnections(int value) {
maxConnections = value;
}
@Override
public int getMaxConnections() {
return maxConnections;
}
@Override
public void setMaxResponseKilobytes(int kb) {
maxResponseKilobytes = kb;
}
@Override
public int getMaxResponseKilobytes() {
return maxResponseKilobytes;
}
}