use of com.mercedesbenz.sechub.sharedkernel.configuration.SecHubConfiguration in project sechub by mercedes-benz.
the class AbstractProductExecutor method configureSourceCodeHandlingIfNecessary.
private void configureSourceCodeHandlingIfNecessary(ProductExecutorData data) {
if (scanType != ScanType.CODE_SCAN) {
return;
}
// the information about paths is interesting for debugging but also necessary
// for our integration tests - see mocked_setup.json
Set<String> paths = new LinkedHashSet<>();
data.codeUploadFileSystemFolderPaths = paths;
SecHubConfiguration configuration = data.getSechubExecutionContext().getConfiguration();
Optional<SecHubCodeScanConfiguration> codeScanOpt = configuration.getCodeScan();
if (!codeScanOpt.isPresent()) {
return;
}
SecHubCodeScanConfiguration codeScan = codeScanOpt.get();
addFileSystemParts(paths, codeScan);
Set<String> usedNames = codeScan.getNamesOfUsedDataConfigurationObjects();
if (usedNames.isEmpty()) {
return;
}
List<SecHubDataConfigurationObjectInfo> found = configObjectFinder.findDataObjectsByName(configuration, usedNames);
for (SecHubDataConfigurationObjectInfo info : found) {
if (info.getType() != SecHubDataConfigurationType.SOURCE) {
continue;
}
SecHubDataConfigurationObject config = info.getDataConfigurationObject();
if (!(config instanceof SecHubSourceDataConfiguration)) {
LOG.warn("source object data was not expected {} but {}", SecHubSourceDataConfiguration.class, config.getClass());
continue;
}
SecHubSourceDataConfiguration sourceDataConfig = (SecHubSourceDataConfiguration) config;
addFileSystemParts(paths, sourceDataConfig);
}
}
use of com.mercedesbenz.sechub.sharedkernel.configuration.SecHubConfiguration in project sechub by mercedes-benz.
the class ScanServiceTest method scan_service_fetches_mock_configuration_and_puts_mock_project_configuration_complete_in_execution_context.
@Test
public void scan_service_fetches_mock_configuration_and_puts_mock_project_configuration_complete_in_execution_context() throws Exception {
/* prepare */
SecHubConfiguration configNoProjectId = prepareValidConfiguration();
DomainMessage request = prepareRequest(configNoProjectId);
ScanProjectMockDataConfiguration projectMockDataConfig = new ScanProjectMockDataConfiguration();
projectMockDataConfig.setCodeScan(new ScanMockData(TrafficLight.YELLOW));
ScanProjectConfig projectConfig = new ScanProjectConfig(ScanProjectConfigID.MOCK_CONFIGURATION, TEST_PROJECT_ID1);
projectConfig.setData(projectMockDataConfig.toJSON());
when(scanProjectConfigService.get("test-project-id1", ScanProjectConfigID.MOCK_CONFIGURATION, false)).thenReturn(projectConfig);
/* execute */
simulateEventSend(request, serviceToTest);
/* test */
ArgumentCaptor<SecHubExecutionContext> contextCaptor = ArgumentCaptor.forClass(SecHubExecutionContext.class);
verify(codeScanProductExecutionService).executeProductsAndStoreResults(contextCaptor.capture());
SecHubExecutionContext context = contextCaptor.getValue();
assertEquals(projectMockDataConfig, context.getData(ScanKey.PROJECT_MOCKDATA_CONFIGURATION));
}
use of com.mercedesbenz.sechub.sharedkernel.configuration.SecHubConfiguration in project sechub by mercedes-benz.
the class ScanServiceTest method scan_service_fetches_configuration_without_accesscheck.
@Test
public void scan_service_fetches_configuration_without_accesscheck() throws Exception {
/* prepare */
SecHubConfiguration configNoProjectId = prepareValidConfiguration();
DomainMessage request = prepareRequest(configNoProjectId);
/* execute */
simulateEventSend(request, serviceToTest);
/* test */
verify(scanProjectConfigService).get(TEST_PROJECT_ID1, ScanProjectConfigID.MOCK_CONFIGURATION, false);
}
use of com.mercedesbenz.sechub.sharedkernel.configuration.SecHubConfiguration in project sechub by mercedes-benz.
the class WebConfigBuilderStrategyTest method too_many_includes.
@Test
public void too_many_includes() {
/* prepare */
List<String> includes = new LinkedList<>();
for (int i = 1; i <= 501; i++) {
includes.add("/myapp" + i);
}
String json = createIncludesJson(includes);
SecHubConfiguration configuration = SECHUB_CONFIG.fromJSON(json);
SecHubExecutionContext context = new SecHubExecutionContext(UUID.randomUUID(), configuration, "test");
WebConfigBuilderStrategy strategyToTest = new WebConfigBuilderStrategy(context);
TestAbstractWebScanAdapterConfigBuilder configBuilder = new TestAbstractWebScanAdapterConfigBuilder();
/* execute */
IllegalArgumentException exception = Assertions.assertThrows(IllegalArgumentException.class, () -> {
strategyToTest.configure(configBuilder);
});
/* test */
assertEquals("A maximum of 500 includes are allowed.", exception.getMessage());
}
use of com.mercedesbenz.sechub.sharedkernel.configuration.SecHubConfiguration in project sechub by mercedes-benz.
the class WebConfigBuilderStrategyTest method include_too_long.
@Test
public void include_too_long() {
/* prepare */
// create long string
StringBuilder sb = new StringBuilder();
sb.append("/");
for (int i = 0; i < 64; i++) {
sb.append("abcdefghijklmnopqrstuvwxyz012345");
}
List<String> includes = new LinkedList<>();
includes.add(sb.toString());
String json = createIncludesJson(includes);
SecHubConfiguration configuration = SECHUB_CONFIG.fromJSON(json);
SecHubExecutionContext context = new SecHubExecutionContext(UUID.randomUUID(), configuration, "test");
WebConfigBuilderStrategy strategyToTest = new WebConfigBuilderStrategy(context);
TestAbstractWebScanAdapterConfigBuilder configBuilder = new TestAbstractWebScanAdapterConfigBuilder();
/* execute */
IllegalArgumentException exception = Assertions.assertThrows(IllegalArgumentException.class, () -> {
strategyToTest.configure(configBuilder);
});
/* test */
assertThat(exception.getMessage(), startsWith("Maximum URL length is 2048 characters. The first 2048 characters of the URL in question: /abcdefghijklmnopqrst"));
}
Aggregations