use of com.mercedesbenz.sechub.commons.model.SecHubWebScanConfiguration in project sechub by mercedes-benz.
the class SecHubConfigurationTest method webscan_login_form_script_with_wait_json_has_webconfig_as_expected.
@Test
public void webscan_login_form_script_with_wait_json_has_webconfig_as_expected() throws Exception {
/* prepare */
String json = SharedKernelTestFileSupport.getTestfileSupport().loadTestFile("webscan/webscan_login_form_script_with_wait.json");
/* execute */
SecHubConfiguration result = SECHUB_CONFIG.fromJSON(json);
/* test */
Optional<SecHubWebScanConfiguration> webScanOption = result.getWebScan();
assertTrue("webscan config must be present", webScanOption.isPresent());
SecHubWebScanConfiguration secHubWebScanConfiguration = webScanOption.get();
Optional<WebLoginConfiguration> loginOption = secHubWebScanConfiguration.getLogin();
assertTrue("login config must be present", loginOption.isPresent());
WebLoginConfiguration loginConfiguration = loginOption.get();
assertEquals(new URL("https://productfailure.demo.example.org/login"), loginConfiguration.getUrl());
Optional<BasicLoginConfiguration> basic = loginConfiguration.getBasic();
assertFalse("basic login config must NOT be present", basic.isPresent());
/*-- form --*/
Optional<FormLoginConfiguration> form = loginConfiguration.getForm();
assertTrue("form login config must be present", form.isPresent());
/*-- form : script --*/
Optional<Script> script = form.get().getScript();
assertTrue("script config must be present", script.isPresent());
Optional<List<Page>> pages = script.get().getPages();
assertTrue("pages must be present", pages.isPresent());
assertEquals("must have 1 pages", 1, pages.get().size());
/*-- page 1 --*/
Optional<List<Action>> page1 = pages.get().get(0).getActions();
assertTrue("actions must be present", page1.isPresent());
assertEquals("must have 4 action entries", 4, page1.get().size());
Action action1 = page1.get().get(0);
Action action2 = page1.get().get(1);
Action action3 = page1.get().get(2);
Action action4 = page1.get().get(3);
assertEquals(ActionType.INPUT, action1.getType());
assertEquals("#example_login_userid", action1.getSelector().get());
assertEquals("user2", action1.getValue().get());
assertEquals(ActionType.WAIT, action2.getType());
assertEquals("1458", action2.getValue().get());
assertEquals(SecHubTimeUnit.MILLISECOND, action2.getUnit().get());
assertEquals(ActionType.INPUT, action3.getType());
assertEquals("#example_login_pwd", action3.getSelector().get());
assertEquals("pwd2", action3.getValue().get());
assertEquals(ActionType.CLICK, action4.getType());
assertEquals("#example_login_login_button", action4.getSelector().get());
}
use of com.mercedesbenz.sechub.commons.model.SecHubWebScanConfiguration in project sechub by mercedes-benz.
the class SecHubConfigurationTest method webscan_login_form_script_with_descriptions_json_has_webconfig_as_expected.
@Test
public void webscan_login_form_script_with_descriptions_json_has_webconfig_as_expected() throws Exception {
/* prepare */
String json = SharedKernelTestFileSupport.getTestfileSupport().loadTestFile("webscan/webscan_login_form_script_with_descriptions.json");
/* execute */
SecHubConfiguration result = SECHUB_CONFIG.fromJSON(json);
/* test */
Optional<SecHubWebScanConfiguration> webScanOption = result.getWebScan();
assertTrue("webscan config must be present", webScanOption.isPresent());
SecHubWebScanConfiguration secHubWebScanConfiguration = webScanOption.get();
Optional<WebLoginConfiguration> loginOption = secHubWebScanConfiguration.getLogin();
assertTrue("login config must be present", loginOption.isPresent());
WebLoginConfiguration loginConfiguration = loginOption.get();
assertEquals(new URL("https://productfailure.demo.example.org/login"), loginConfiguration.getUrl());
Optional<BasicLoginConfiguration> basic = loginConfiguration.getBasic();
assertFalse("basic login config must NOT be present", basic.isPresent());
/*-- form --*/
Optional<FormLoginConfiguration> form = loginConfiguration.getForm();
assertTrue("form login config must be present", form.isPresent());
/*-- form: script --*/
Optional<Script> script = form.get().getScript();
assertTrue("script config must be present", script.isPresent());
Optional<List<Page>> pages = script.get().getPages();
assertTrue("pages must be present", pages.isPresent());
assertEquals("must have 1 pages", 1, pages.get().size());
/*-- page 1 --*/
Optional<List<Action>> page1 = pages.get().get(0).getActions();
assertTrue("actions must be present", page1.isPresent());
assertEquals("must have 4 action entries", 4, page1.get().size());
Action action1 = page1.get().get(0);
Action action2 = page1.get().get(1);
Action action3 = page1.get().get(2);
Action action4 = page1.get().get(3);
assertEquals(ActionType.USERNAME, action1.getType());
assertEquals("#example_login_userid", action1.getSelector().get());
assertEquals("user2", action1.getValue().get());
assertEquals("The username is different from the email address", action1.getDescription().get());
assertEquals(ActionType.INPUT, action2.getType());
assertEquals("#example_login_email", action2.getSelector().get());
assertEquals("user2@example.com", action2.getValue().get());
assertEquals("The website has a separate field for the email address", action2.getDescription().get());
assertEquals(ActionType.PASSWORD, action3.getType());
assertEquals("#example_login_pwd", action3.getSelector().get());
assertEquals("pwd2", action3.getValue().get());
assertEquals(ActionType.CLICK, action4.getType());
assertEquals("#example_login_login_button", action4.getSelector().get());
}
use of com.mercedesbenz.sechub.commons.model.SecHubWebScanConfiguration in project sechub by mercedes-benz.
the class SecHubConfigurationTest method webscan_login_basic_json_has_webconfig_as_expected.
@Test
public void webscan_login_basic_json_has_webconfig_as_expected() throws Exception {
/* prepare */
String json = SharedKernelTestFileSupport.getTestfileSupport().loadTestFile("webscan/webscan_login_basic.json");
/* execute */
SecHubConfiguration result = SECHUB_CONFIG.fromJSON(json);
/* test */
Optional<SecHubWebScanConfiguration> webScanOption = result.getWebScan();
assertTrue("webscan config must be present", webScanOption.isPresent());
SecHubWebScanConfiguration secHubWebScanConfiguration = webScanOption.get();
Optional<WebLoginConfiguration> loginOption = secHubWebScanConfiguration.getLogin();
assertTrue("login config must be present", loginOption.isPresent());
WebLoginConfiguration loginConfiguration = loginOption.get();
assertEquals(new URL("https://productfailure.demo.example.org/login"), loginConfiguration.getUrl());
/*-- basic --*/
Optional<BasicLoginConfiguration> basic = loginConfiguration.getBasic();
assertTrue("basic login config must be present", basic.isPresent());
assertEquals("realm0", basic.get().getRealm().get());
assertEquals("user0", new String(basic.get().getUser()));
assertEquals("pwd0", new String(basic.get().getPassword()));
/*-- form --*/
Optional<FormLoginConfiguration> form = loginConfiguration.getForm();
assertFalse("form login config must NOT be present", form.isPresent());
}
use of com.mercedesbenz.sechub.commons.model.SecHubWebScanConfiguration in project sechub by mercedes-benz.
the class SecHubFileStructureDataProviderBuilder method build.
public SecHubFileStructureDataProvider build() {
if (scanType == null) {
throw new IllegalStateException("scanType is not set");
}
if (model == null) {
throw new IllegalStateException("model is not set");
}
MutableSecHubFileStructureDataProvider data = new MutableSecHubFileStructureDataProvider();
switch(scanType) {
case CODE_SCAN:
data.setRootFolderAccepted(true);
addAllUsages(data, model.getCodeScan(), false);
break;
case INFRA_SCAN:
break;
case LICENSE_SCAN:
addAllUsages(data, model.getLicenseScan(), true);
break;
case REPORT:
break;
case UNKNOWN:
break;
case WEB_SCAN:
Optional<SecHubWebScanConfiguration> webScanOpt = model.getWebScan();
if (!webScanOpt.isPresent()) {
throw new IllegalStateException("No webscan present but it is a " + scanType);
}
SecHubWebScanConfiguration webScan = webScanOpt.get();
Optional<SecHubWebScanApiConfiguration> apiOpt = webScan.getApi();
addAllUsages(data, apiOpt, false);
break;
default:
break;
}
return data;
}
use of com.mercedesbenz.sechub.commons.model.SecHubWebScanConfiguration in project sechub by mercedes-benz.
the class OwaspZapScanConfigurationFactoryTest method created_configuration_has_max_scan_duration_from_sechub_webconfig.
@Test
void created_configuration_has_max_scan_duration_from_sechub_webconfig() {
/* prepare */
CommandLineSettings settings = createSettingsMockWithNecessaryParts();
SecHubWebScanConfiguration config = simulateProvidedSecHubConfiguration(settings);
long maxScanDueration = 4711L;
when(sechubWebConfigHelper.fetchMaxScanDurationInMillis(config)).thenReturn(maxScanDueration);
/* execute */
OwaspZapScanConfiguration result = factoryToTest.create(settings);
/* test */
assertEquals(result.getMaxScanDurationInMillis(), maxScanDueration);
}
Aggregations