/*
* SoapUI, Copyright (C) 2004-2016 SmartBear Software
*
* Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the Licence for the specific language governing permissions and limitations
* under the Licence.
*/
package com.eviware.soapui.security.ui;
import com.eviware.soapui.config.FuzzerScanConfig;
import com.eviware.soapui.support.UISupport;
import com.eviware.x.form.XFormField;
import com.eviware.x.form.XFormFieldListener;
import com.eviware.x.form.support.ADialogBuilder;
import com.eviware.x.form.support.AField;
import com.eviware.x.form.support.AField.AFieldType;
import com.eviware.x.form.support.AForm;
import com.eviware.x.impl.swing.JFormDialog;
public class FuzzerScanAdvancedConfigPanel {
private JFormDialog dialog;
private FuzzerScanConfig fuzzerScanConfig;
public FuzzerScanAdvancedConfigPanel(FuzzerScanConfig fuzzerScanConfig) {
this.fuzzerScanConfig = fuzzerScanConfig;
initDialog();
}
public JFormDialog getDialog() {
return dialog;
}
private JFormDialog initDialog() {
dialog = (JFormDialog) ADialogBuilder.buildDialog(AdvancedSettings.class);
minimalField(fuzzerScanConfig);
maximalField(fuzzerScanConfig);
numberOfRequestField(fuzzerScanConfig);
return dialog;
}
private void minimalField(final FuzzerScanConfig fuzzerScanConfig) {
XFormField minimal = dialog.getFormField(AdvancedSettings.MINIMAL);
minimal.setValue(String.valueOf(fuzzerScanConfig.getMinimal()));
minimal.addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
try {
if ("".equals(newValue)) {
return;
}
Integer.valueOf(newValue);
fuzzerScanConfig.setMinimal(Integer.valueOf(newValue));
} catch (Exception e) {
UISupport.showErrorMessage("Value must be integer number");
}
}
});
}
private void maximalField(final FuzzerScanConfig fuzzerScanConfig) {
XFormField maximal = dialog.getFormField(AdvancedSettings.MAXIMAL);
maximal.setValue(String.valueOf(fuzzerScanConfig.getMaximal()));
maximal.addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
try {
if ("".equals(newValue)) {
return;
}
Integer.valueOf(newValue);
fuzzerScanConfig.setMaximal(Integer.valueOf(newValue));
} catch (Exception e) {
UISupport.showErrorMessage("Value must be integer number");
}
}
});
}
private void numberOfRequestField(final FuzzerScanConfig fuzzerScanConfig) {
XFormField numberOfRequest = dialog.getFormField(AdvancedSettings.NUMBER_OF_REQUEST);
numberOfRequest.setValue(String.valueOf(fuzzerScanConfig.getNumberOfRequest()));
numberOfRequest.addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
try {
if ("".equals(newValue)) {
return;
}
Integer.valueOf(newValue);
fuzzerScanConfig.setNumberOfRequest(Integer.valueOf(newValue));
} catch (Exception e) {
UISupport.showErrorMessage("Value must be integer number");
}
}
});
}
@AForm(description = "Fuzzer Scan", name = "Fuzzer Scan")
protected interface AdvancedSettings {
@AField(description = "Minimal length of Fuzzed value", name = "Minimal length", type = AFieldType.INT)
public final static String MINIMAL = "Minimal length";
@AField(description = "Maximal length of Fuzzed value", name = "Maximal length", type = AFieldType.INT)
public final static String MAXIMAL = "Maximal length";
@AField(description = "Number of Fuzzed Requests to do", name = "Number of Requests", type = AFieldType.INT)
public final static String NUMBER_OF_REQUEST = "Number of Requests";
}
}