/*******************************************************************************
* 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.ui.scanner.wizards;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import org.eclipse.jface.wizard.Wizard;
import com.subgraph.vega.api.scanner.modules.IScannerModule;
public class NewScanWizard extends Wizard {
private NewScanWizardPage page1;
private NewScanWizardPage2 page2;
// private NewScanWizardPage3 page3;
private URI scanHostURI;
private String validTargetField;
private boolean isDomTest;
private String targetField;
private List<IScannerModule> scannerModules;
private List<String> cookieStringList;
private List<String> exclusions;
private String basicUsername;
private String basicPassword;
private String basicRealm;
private String basicDomain;
private String ntlmUsername;
private String ntlmPassword;
@Override
public void addPages() {
page1 = new NewScanWizardPage(targetField, scannerModules);
addPage(page1);
page2 = new NewScanWizardPage2();
addPage(page2);
// page3 = new NewScanWizardPage3();
// addPage(page3);
}
@Override
public boolean canFinish() {
final String scanHostText = page1.getScanTarget().trim();
if(scanHostText.isEmpty()) {
page1.setErrorMessage(null);
return false;
}
final URI target = createTargetURI(scanHostText);
if(target == null) {
page1.setErrorMessage("Target entered is not a valid host or URL");
return false;
} else {
page1.setErrorMessage(null);
return true;
}
}
@Override
public boolean performFinish() {
String target = page1.getScanTarget();
if(target.equals("domtest")) {
isDomTest = true;
return true;
}
scanHostURI = createTargetURI(page1.getScanTarget());
cookieStringList = page2.getCookieStringList();
exclusions = page2.getExclusions();
// basicUsername = page3.getBasicUsername();
// basicPassword = page3.getBasicPassword();
// basicRealm = page3.getBasicRealm();
// basicDomain = page3.getBasicRealm();
// ntlmUsername = page3.getNtlmUsername();
// ntlmPassword = page3.getNtlmPassword();
if(scanHostURI != null)
validTargetField = target;
return (scanHostURI != null);
}
public void setTargetField(String value) {
targetField = value;
}
public void setScannerModules(List<IScannerModule> modules) {
this.scannerModules = modules;
}
public URI getScanHostURI() {
return scanHostURI;
}
public String getTargetField() {
return validTargetField;
}
public List<String> getCookieStringList() {
return cookieStringList;
}
public boolean isDomTest() {
return isDomTest;
}
public String getBasicUsername() {
return basicUsername;
}
public String getBasicPassword() {
return basicPassword;
}
public String getBasicRealm() {
return basicRealm;
}
public String getBasicDomain() {
return basicDomain;
}
public List<String> getExclusions() {
return exclusions;
}
public String getNtlmUsername() {
return ntlmUsername;
}
public String getNtlmPassword() {
return ntlmPassword;
}
URI createTargetURI(String value) {
if(!(value.startsWith("http://") || value.startsWith("https://"))) {
value = "http://"+ value;
}
try {
return new URI(value);
} catch (URISyntaxException e) {
return null;
}
}
}