From 91e98bdfa47aceca511875f370e09e78c2451581 Mon Sep 17 00:00:00 2001 From: Albert Tregnaghi Date: Thu, 5 Dec 2024 07:15:54 +0100 Subject: [PATCH] Moved shared kernel template parts to own package + renaming #3521 - added comments - moved from encryption package to own template package (shared kernel) - renamed class SecHubProjectTemplates to SecHubProjectTemplateData - created common logic for assignment and unassignment - wrote tests for ProjectTemplateService --- .../project/ProjectDetailInformation.java | 2 +- .../project/ProjectTemplateService.java | 86 ++++---- .../project/ProjectTemplateServiceTest.java | 202 ++++++++++++++++++ ...ministrationRestControllerRestDocTest.java | 4 +- .../domain/scan/ScanMessageHandler.java | 8 +- .../messaging/MessageDataKeys.java | 6 +- ...ubProjectTemplatesMessageDataProvider.java | 10 +- ...bProjectToTemplateMessageDataProvider.java | 2 +- .../SecHubProjectTemplateData.java} | 12 +- .../SecHubProjectToTemplate.java | 2 +- 10 files changed, 261 insertions(+), 73 deletions(-) create mode 100644 sechub-administration/src/test/java/com/mercedesbenz/sechub/domain/administration/project/ProjectTemplateServiceTest.java rename sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/{encryption/SecHubProjectTemplates.java => template/SecHubProjectTemplateData.java} (56%) rename sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/{encryption => template}/SecHubProjectToTemplate.java (94%) diff --git a/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/project/ProjectDetailInformation.java b/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/project/ProjectDetailInformation.java index b08fa65130..bdccd79606 100644 --- a/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/project/ProjectDetailInformation.java +++ b/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/project/ProjectDetailInformation.java @@ -17,7 +17,7 @@ public class ProjectDetailInformation { public static final String PROPERTY_OWNER = "owner"; public static final String PROPERTY_ACCESSLEVEL = "accessLevel"; public static final String PROPERTY_DESCRIPTION = "description"; - public static final String PROPERTY_TEMPLATES = "templates"; + public static final String PROPERTY_TEMPLATE_IDS = "templateIds"; private String projectId; diff --git a/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/project/ProjectTemplateService.java b/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/project/ProjectTemplateService.java index 0960d76e77..d930cdf142 100644 --- a/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/project/ProjectTemplateService.java +++ b/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/project/ProjectTemplateService.java @@ -10,8 +10,6 @@ import org.springframework.stereotype.Service; import com.mercedesbenz.sechub.sharedkernel.Step; -import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubProjectTemplates; -import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubProjectToTemplate; import com.mercedesbenz.sechub.sharedkernel.error.NotAcceptableException; import com.mercedesbenz.sechub.sharedkernel.messaging.DomainMessage; import com.mercedesbenz.sechub.sharedkernel.messaging.DomainMessageService; @@ -20,6 +18,8 @@ import com.mercedesbenz.sechub.sharedkernel.messaging.MessageDataKeys; import com.mercedesbenz.sechub.sharedkernel.messaging.MessageID; import com.mercedesbenz.sechub.sharedkernel.security.RoleConstants; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectTemplateData; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectToTemplate; import com.mercedesbenz.sechub.sharedkernel.usecases.admin.config.UseCaseAdminAssignsTemplateToProject; import com.mercedesbenz.sechub.sharedkernel.usecases.admin.config.UseCaseAdminUnassignsTemplateFromProject; import com.mercedesbenz.sechub.sharedkernel.validation.UserInputAssertion; @@ -52,23 +52,7 @@ public class ProjectTemplateService { description = "The service will request the template assignment in domain 'scan' via synchronous event and updates mapping in domain 'administration' afterwards")) /* @formatter:on */ public void assignTemplateToProject(String templateId, String projectId) { - assertion.assertIsValidTemplateId(templateId); - assertion.assertIsValidProjectId(projectId); - - Project project = projectRepository.findOrFailProject(projectId); - Set templateIds = project.getTemplateIds(); - LOG.debug("Start assigning template '{}' to project '{}'. Formerly assgined templates : {}", templateId, projectId, templateIds); - - SecHubProjectTemplates result = sendAssignRequestAndFetchResult(templateId, projectId); - List newTemplateIds = result.getTemplateIds(); - templateIds.clear(); - templateIds.addAll(newTemplateIds); - - projectTansactionService.saveInOwnTransaction(project); - LOG.info("Assigned template '{}' to project '{}'", templateId, projectId); - - LOG.debug("Project '{}' has now following templates: {}", projectId, templateIds); - + changeTemplateAssignment(templateId, projectId, (t, p) -> fetchAssignRequestResult(t, p), "assigned to"); } /* @formatter:off */ @@ -79,69 +63,71 @@ public void assignTemplateToProject(String templateId, String projectId) { description = "The service will request the template unassignment in domain 'scan' via synchronous event and updates mapping in domain 'administration' afterwards")) /* @formatter:on */ public void unassignTemplateFromProject(String templateId, String projectId) { + changeTemplateAssignment(templateId, projectId, (t, p) -> fetchUnassignmentRequestResult(t, p), "unassigned from"); + } + + private void changeTemplateAssignment(String templateId, String projectId, TemplateChangeResultFetcher fetcher, String assignOrUnassignInfo) { assertion.assertIsValidTemplateId(templateId); assertion.assertIsValidProjectId(projectId); Project project = projectRepository.findOrFailProject(projectId); Set templateIds = project.getTemplateIds(); - LOG.debug("Start unassigning template '{}' from project '{}'. Formerly assgined templates : {}", templateId, projectId, templateIds); + LOG.debug("Project '{}' has following template ids: {}", projectId, templateIds); - SecHubProjectTemplates result = sendUnassignRequestAndFetchResult(templateId, projectId); + SecHubProjectTemplateData result = fetcher.fetchTemplateAssignmentChangeResult(templateId, projectId); List newTemplateIds = result.getTemplateIds(); templateIds.clear(); templateIds.addAll(newTemplateIds); projectTansactionService.saveInOwnTransaction(project); - LOG.info("Unassigned template '{}' from project '{}'", templateId, projectId); - - LOG.debug("Project '{}' has now following templates: {}", projectId, templateIds); + LOG.info("Template '{}' has been {} project '{}'", templateId, assignOrUnassignInfo, projectId); + LOG.debug("Project '{}' has following template ids: {}", projectId, templateIds); } @IsSendingSyncMessage(MessageID.REQUEST_ASSIGN_TEMPLATE_TO_PROJECT) - private SecHubProjectTemplates sendAssignRequestAndFetchResult(String templateId, String projectId) { - - DomainMessage message = new DomainMessage(MessageID.REQUEST_ASSIGN_TEMPLATE_TO_PROJECT); - SecHubProjectToTemplate mapping = new SecHubProjectToTemplate(); - mapping.setProjectId(projectId); - mapping.setTemplateId(templateId); - message.set(MessageDataKeys.PROJECT_TO_TEMPLATE, mapping); - - DomainMessageSynchronousResult result = eventBus.sendSynchron(message); - if (result.hasFailed()) { - throw new NotAcceptableException("Was not able to assign template to project.\nReason:" + result.getErrorMessage()); - } - - MessageID messageID = result.getMessageId(); - if (!(MessageID.RESULT_ASSIGN_TEMPLATE_TO_PROJECT.equals(messageID))) { - throw new IllegalStateException("Result message id not supported: " + messageID); - } - - return result.get(MessageDataKeys.PROJECT_TEMPLATES); + private SecHubProjectTemplateData fetchAssignRequestResult(String templateId, String projectId) { + return sendSynchronousProjectTemplateChangeEvent(templateId, projectId, MessageID.REQUEST_ASSIGN_TEMPLATE_TO_PROJECT, + MessageID.RESULT_ASSIGN_TEMPLATE_TO_PROJECT); } @IsSendingSyncMessage(MessageID.REQUEST_UNASSIGN_TEMPLATE_FROM_PROJECT) - private SecHubProjectTemplates sendUnassignRequestAndFetchResult(String templateId, String projectId) { + private SecHubProjectTemplateData fetchUnassignmentRequestResult(String templateId, String projectId) { + return sendSynchronousProjectTemplateChangeEvent(templateId, projectId, MessageID.REQUEST_UNASSIGN_TEMPLATE_FROM_PROJECT, + MessageID.RESULT_UNASSIGN_TEMPLATE_FROM_PROJECT); + } + + /* + * This method sends a synchronous event to event bus and waits that the + * assignment is done inside other domain (in this case we know it is inside the + * scan domain). When this is done, the change event was successful and the + * event result contains SecHubProjectTemplateData which can be used inside + * administration domain further. + */ + private SecHubProjectTemplateData sendSynchronousProjectTemplateChangeEvent(String templateId, String projectId, MessageID requestMessageId, + MessageID acceptedResultMessageId) { + + DomainMessage message = new DomainMessage(requestMessageId); - DomainMessage message = new DomainMessage(MessageID.REQUEST_UNASSIGN_TEMPLATE_FROM_PROJECT); SecHubProjectToTemplate mapping = new SecHubProjectToTemplate(); mapping.setProjectId(projectId); mapping.setTemplateId(templateId); message.set(MessageDataKeys.PROJECT_TO_TEMPLATE, mapping); DomainMessageSynchronousResult result = eventBus.sendSynchron(message); + if (result.hasFailed()) { - throw new NotAcceptableException("Was not able to assign template to project.\nReason:" + result.getErrorMessage()); + throw new NotAcceptableException("Was not able to change template to project assignment.\nReason: " + result.getErrorMessage()); } - MessageID messageID = result.getMessageId(); - if (!(MessageID.RESULT_UNASSIGN_TEMPLATE_FROM_PROJECT.equals(messageID))) { + if (!(acceptedResultMessageId.equals(messageID))) { throw new IllegalStateException("Result message id not supported: " + messageID); } - return result.get(MessageDataKeys.PROJECT_TEMPLATES); - } + private interface TemplateChangeResultFetcher { + public SecHubProjectTemplateData fetchTemplateAssignmentChangeResult(String templateId, String projectId); + } } diff --git a/sechub-administration/src/test/java/com/mercedesbenz/sechub/domain/administration/project/ProjectTemplateServiceTest.java b/sechub-administration/src/test/java/com/mercedesbenz/sechub/domain/administration/project/ProjectTemplateServiceTest.java new file mode 100644 index 0000000000..dd9ea02985 --- /dev/null +++ b/sechub-administration/src/test/java/com/mercedesbenz/sechub/domain/administration/project/ProjectTemplateServiceTest.java @@ -0,0 +1,202 @@ +package com.mercedesbenz.sechub.domain.administration.project; + +import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; + +import java.util.List; +import java.util.Set; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; +import org.junit.jupiter.params.provider.EnumSource.Mode; +import org.mockito.ArgumentCaptor; + +import com.mercedesbenz.sechub.sharedkernel.error.NotAcceptableException; +import com.mercedesbenz.sechub.sharedkernel.messaging.DomainMessage; +import com.mercedesbenz.sechub.sharedkernel.messaging.DomainMessageService; +import com.mercedesbenz.sechub.sharedkernel.messaging.DomainMessageSynchronousResult; +import com.mercedesbenz.sechub.sharedkernel.messaging.MessageDataKeys; +import com.mercedesbenz.sechub.sharedkernel.messaging.MessageID; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectTemplateData; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectToTemplate; + +class ProjectTemplateServiceTest { + + private static final String CORRECT_ASSIGN_TEMPLATE_RESULT_MESSAGE_ID = "RESULT_ASSIGN_TEMPLATE_TO_PROJECT"; + private static final String CORRECT_UNASSIGN_TEMPLATE_RESULT_MESSAGE_ID = "RESULT_UNASSIGN_TEMPLATE_FROM_PROJECT"; + private static final String ASSIGNED_TEMPLATE_ID_A = "template-a"; + private static final String ASSIGNED_TEMPLATE_ID_B = "template-b"; + + private static final String ASSIGNED_TEMPLATE_ID_AFTER_CHANGE_1 = "template-after_change-1"; + private static final String ASSIGNED_TEMPLATE_ID_AFTER_CHANGE_2 = "template-after-change-2"; + + private static final String PROJECT_ID1 = "project1"; + private static final String TEMPLATE_ID1 = "templateId1"; + private ProjectTemplateService serviceToTest; + private DomainMessageService eventBus; + private ProjectRepository projectRepository; + private ProjectTransactionService projectTansactionService; + + @BeforeEach + void beforeEach() { + + eventBus = mock(); + projectRepository = mock(); + projectTansactionService = mock(); + + serviceToTest = new ProjectTemplateService(); + serviceToTest.assertion = mock(); + serviceToTest.eventBus = eventBus; + + serviceToTest.projectRepository = projectRepository; + serviceToTest.projectTansactionService = projectTansactionService; + } + + @Test + void assignTemplateToProject_sends_assign_request_synchronous_with_expected_data() { + + /* prepare */ + mockEventBusSynchronResultWithMessageId(MessageID.RESULT_ASSIGN_TEMPLATE_TO_PROJECT); + + /* execute */ + serviceToTest.assignTemplateToProject(TEMPLATE_ID1, PROJECT_ID1); + + /* test */ + ArgumentCaptor messageCaptor = ArgumentCaptor.captor(); + verify(eventBus).sendSynchron(messageCaptor.capture()); + + DomainMessage sentMessage = messageCaptor.getValue(); + assertThat(sentMessage).isNotNull(); + assertThat(sentMessage.getMessageId()).isEqualTo(MessageID.REQUEST_ASSIGN_TEMPLATE_TO_PROJECT); + SecHubProjectToTemplate sentMessageData = sentMessage.get(MessageDataKeys.PROJECT_TO_TEMPLATE); + assertThat(sentMessageData).isNotNull(); + assertThat(sentMessageData.getProjectId()).isEqualTo(PROJECT_ID1); + assertThat(sentMessageData.getTemplateId()).isEqualTo(TEMPLATE_ID1); + + } + + @Test + void assignTemplateToProject_updates_template_by_synchronous_event_result() { + + /* prepare */ + mockEventBusSynchronResultWithMessageId(MessageID.RESULT_ASSIGN_TEMPLATE_TO_PROJECT); + + /* execute */ + serviceToTest.assignTemplateToProject(TEMPLATE_ID1, PROJECT_ID1); + + /* test */ + ArgumentCaptor projectCaptor = ArgumentCaptor.forClass(Project.class); + verify(projectTansactionService).saveInOwnTransaction(projectCaptor.capture()); + Project projectSaved = projectCaptor.getValue(); + assertThat(projectSaved.getTemplateIds()).hasSize(2).describedAs("project templates must be changed by result data") + .contains(ASSIGNED_TEMPLATE_ID_AFTER_CHANGE_1).contains(ASSIGNED_TEMPLATE_ID_AFTER_CHANGE_2); + + } + + @Test + void unassignTemplateFromProject_sends_assign_request_synchronous_with_expected_data() { + + /* prepare */ + mockEventBusSynchronResultWithMessageId(MessageID.RESULT_UNASSIGN_TEMPLATE_FROM_PROJECT); + + /* execute */ + serviceToTest.unassignTemplateFromProject(TEMPLATE_ID1, PROJECT_ID1); + + /* test */ + ArgumentCaptor messageCaptor = ArgumentCaptor.captor(); + verify(eventBus).sendSynchron(messageCaptor.capture()); + + DomainMessage sentMessage = messageCaptor.getValue(); + assertThat(sentMessage).isNotNull(); + assertThat(sentMessage.getMessageId()).isEqualTo(MessageID.REQUEST_UNASSIGN_TEMPLATE_FROM_PROJECT); + SecHubProjectToTemplate sentMessageData = sentMessage.get(MessageDataKeys.PROJECT_TO_TEMPLATE); + assertThat(sentMessageData).isNotNull(); + assertThat(sentMessageData.getProjectId()).isEqualTo(PROJECT_ID1); + assertThat(sentMessageData.getTemplateId()).isEqualTo(TEMPLATE_ID1); + } + + @Test + void unassignTemplateFromProject_updates_template_by_synchronous_event_result() { + + /* prepare */ + mockEventBusSynchronResultWithMessageId(MessageID.RESULT_UNASSIGN_TEMPLATE_FROM_PROJECT); + + /* execute */ + serviceToTest.unassignTemplateFromProject(TEMPLATE_ID1, PROJECT_ID1); + + /* test */ + ArgumentCaptor projectCaptor = ArgumentCaptor.forClass(Project.class); + verify(projectTansactionService).saveInOwnTransaction(projectCaptor.capture()); + Project projectSaved = projectCaptor.getValue(); + assertThat(projectSaved.getTemplateIds()).hasSize(2).describedAs("project templates must be changed by result data") + .contains(ASSIGNED_TEMPLATE_ID_AFTER_CHANGE_1).contains(ASSIGNED_TEMPLATE_ID_AFTER_CHANGE_2); + + } + + @ParameterizedTest + @EnumSource(value = MessageID.class, mode = Mode.EXCLUDE, names = CORRECT_UNASSIGN_TEMPLATE_RESULT_MESSAGE_ID) + void unassignTemplateFromProject_when_synchronous_event_result_has_unsupported_message_throws_invalid_exception(MessageID wrongMessageId) { + /* prepare */ + mockEventBusSynchronResultWithMessageId(wrongMessageId); + + /* execute + test */ + assertThatThrownBy(() -> serviceToTest.unassignTemplateFromProject(TEMPLATE_ID1, PROJECT_ID1)).isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Result message id not supported"); + + } + + @ParameterizedTest + @EnumSource(value = MessageID.class, mode = Mode.EXCLUDE, names = CORRECT_ASSIGN_TEMPLATE_RESULT_MESSAGE_ID) + void assignTemplateToProject_when_synchronous_event_result_has_unsupported_message_throws_invalid_exception(MessageID wrongMessageId) { + mockEventBusSynchronResultWithMessageId(wrongMessageId); + + /* execute + test */ + assertThatThrownBy(() -> serviceToTest.assignTemplateToProject(TEMPLATE_ID1, PROJECT_ID1)).isInstanceOf(IllegalStateException.class) + .hasMessageContaining("Result message id not supported"); + + } + + @Test + void assignTemplateToProject_when_event_result_failed_exception_is_thrown() { + /* prepare */ + DomainMessageSynchronousResult mockedResultMessage = mockEventBusSynchronResultWithMessageId( + MessageID.valueOf(CORRECT_UNASSIGN_TEMPLATE_RESULT_MESSAGE_ID)); + when(mockedResultMessage.hasFailed()).thenReturn(true); + + assertThatThrownBy(() -> serviceToTest.assignTemplateToProject(TEMPLATE_ID1, PROJECT_ID1)).isInstanceOf(NotAcceptableException.class) + .hasMessageContaining("Was not able to change template to project assignment"); + } + + @Test + void unassignTemplateFromProject_when_event_result_failed_exception_is_thrown() { + /* prepare */ + DomainMessageSynchronousResult mockedResultMessage = mockEventBusSynchronResultWithMessageId( + MessageID.valueOf(CORRECT_UNASSIGN_TEMPLATE_RESULT_MESSAGE_ID)); + when(mockedResultMessage.hasFailed()).thenReturn(true); + + assertThatThrownBy(() -> serviceToTest.unassignTemplateFromProject(TEMPLATE_ID1, PROJECT_ID1)).isInstanceOf(NotAcceptableException.class) + .hasMessageContaining("Was not able to change template to project assignment"); + } + + private DomainMessageSynchronousResult mockEventBusSynchronResultWithMessageId(MessageID resultMessageId) { + Project project1 = new Project(); + project1.getTemplateIds().addAll(Set.of(ASSIGNED_TEMPLATE_ID_A, ASSIGNED_TEMPLATE_ID_B)); + + when(projectRepository.findOrFailProject(PROJECT_ID1)).thenReturn(project1); + + SecHubProjectTemplateData mockedResultData = mock(); + when(mockedResultData.getProjectId()).thenReturn("result-project"); + when(mockedResultData.getTemplateIds()).thenReturn(List.of(ASSIGNED_TEMPLATE_ID_AFTER_CHANGE_1, ASSIGNED_TEMPLATE_ID_AFTER_CHANGE_2)); + DomainMessageSynchronousResult mockedResultMessage = mock(); + when(mockedResultMessage.getMessageId()).thenReturn(resultMessageId); + when(mockedResultMessage.get(MessageDataKeys.PROJECT_TEMPLATES)).thenReturn(mockedResultData); + + when(eventBus.sendSynchron(any(DomainMessage.class))).thenReturn(mockedResultMessage); + + return mockedResultMessage; + } + +} diff --git a/sechub-doc/src/test/java/com/mercedesbenz/sechub/restdoc/ProjectAdministrationRestControllerRestDocTest.java b/sechub-doc/src/test/java/com/mercedesbenz/sechub/restdoc/ProjectAdministrationRestControllerRestDocTest.java index 68c0094a15..bcf9ba4b80 100644 --- a/sechub-doc/src/test/java/com/mercedesbenz/sechub/restdoc/ProjectAdministrationRestControllerRestDocTest.java +++ b/sechub-doc/src/test/java/com/mercedesbenz/sechub/restdoc/ProjectAdministrationRestControllerRestDocTest.java @@ -459,7 +459,7 @@ public void restdoc_show_project_details() throws Exception { fieldWithPath(ProjectDetailInformation.PROPERTY_USERS).description("A list of all users having access to the project"), fieldWithPath(ProjectDetailInformation.PROPERTY_OWNER).description("Username of the owner of this project. An owner is the person in charge."), fieldWithPath(ProjectDetailInformation.PROPERTY_WHITELIST).description("A list of all whitelisted URIs. Only these ones can be scanned for the project!"), - fieldWithPath(ProjectDetailInformation.PROPERTY_TEMPLATES).description("A list of all templates assigned to the project"), + fieldWithPath(ProjectDetailInformation.PROPERTY_TEMPLATE_IDS).description("A list of all templates assigned to the project"), fieldWithPath(ProjectDetailInformation.PROPERTY_METADATA).description("An JSON object containing metadata key-value pairs defined for this project."), fieldWithPath(ProjectDetailInformation.PROPERTY_METADATA + ".key1").description("An arbitrary metadata key"), fieldWithPath(ProjectDetailInformation.PROPERTY_ACCESSLEVEL).description("The project access level"), @@ -539,7 +539,7 @@ public void restdoc_change_project_description() throws Exception { fieldWithPath(ProjectDetailInformation.PROPERTY_USERS).description("A list of all users having access to the project."), fieldWithPath(ProjectDetailInformation.PROPERTY_OWNER).description("Username of the owner of this project. An owner is the person in charge."), fieldWithPath(ProjectDetailInformation.PROPERTY_WHITELIST).description("A list of all whitelisted URIs. Only these ones can be scanned for the project!"), - fieldWithPath(ProjectDetailInformation.PROPERTY_TEMPLATES).description("A list of all templates assigned to the project"), + fieldWithPath(ProjectDetailInformation.PROPERTY_TEMPLATE_IDS).description("A list of all templates assigned to the project"), fieldWithPath(ProjectDetailInformation.PROPERTY_METADATA).description("An JSON object containing metadata key-value pairs defined for this project."), fieldWithPath(ProjectDetailInformation.PROPERTY_METADATA + ".key1").description("An arbitrary metadata key"), fieldWithPath(ProjectDetailInformation.PROPERTY_ACCESSLEVEL).description("The project access level"), diff --git a/sechub-scan/src/main/java/com/mercedesbenz/sechub/domain/scan/ScanMessageHandler.java b/sechub-scan/src/main/java/com/mercedesbenz/sechub/domain/scan/ScanMessageHandler.java index 9454f811e8..0f7143a77c 100644 --- a/sechub-scan/src/main/java/com/mercedesbenz/sechub/domain/scan/ScanMessageHandler.java +++ b/sechub-scan/src/main/java/com/mercedesbenz/sechub/domain/scan/ScanMessageHandler.java @@ -19,8 +19,6 @@ import com.mercedesbenz.sechub.domain.scan.project.ScanProjectConfigAccessLevelService; import com.mercedesbenz.sechub.domain.scan.template.TemplateService; import com.mercedesbenz.sechub.sharedkernel.Step; -import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubProjectTemplates; -import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubProjectToTemplate; import com.mercedesbenz.sechub.sharedkernel.mapping.MappingIdentifier; import com.mercedesbenz.sechub.sharedkernel.mapping.MappingIdentifier.MappingType; import com.mercedesbenz.sechub.sharedkernel.messaging.AdministrationConfigMessage; @@ -37,6 +35,8 @@ import com.mercedesbenz.sechub.sharedkernel.messaging.SynchronMessageHandler; import com.mercedesbenz.sechub.sharedkernel.messaging.UserMessage; import com.mercedesbenz.sechub.sharedkernel.project.ProjectAccessLevel; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectTemplateData; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectToTemplate; import com.mercedesbenz.sechub.sharedkernel.usecases.admin.config.UseCaseAdmiUpdatesMappingConfiguration; import com.mercedesbenz.sechub.sharedkernel.usecases.admin.project.UseCaseAdminChangesProjectAccessLevel; @@ -192,7 +192,7 @@ private DomainMessageSynchronousResult purgeDone(UUID jobUUID) { @IsSendingSyncMessageAnswer(value = MessageID.RESULT_ASSIGN_TEMPLATE_TO_PROJECT, answeringTo = MessageID.REQUEST_ASSIGN_TEMPLATE_TO_PROJECT, branchName = "success") private DomainMessageSynchronousResult templateAssignmentDone(String projectId, Set assignedTemplates) { DomainMessageSynchronousResult result = new DomainMessageSynchronousResult(MessageID.RESULT_ASSIGN_TEMPLATE_TO_PROJECT); - SecHubProjectTemplates templates = new SecHubProjectTemplates(); + SecHubProjectTemplateData templates = new SecHubProjectTemplateData(); templates.setProjectId(projectId); templates.getTemplateIds().addAll(assignedTemplates); @@ -209,7 +209,7 @@ private DomainMessageSynchronousResult templateAssignmentFailed(Exception failur @IsSendingSyncMessageAnswer(value = MessageID.RESULT_UNASSIGN_TEMPLATE_FROM_PROJECT, answeringTo = MessageID.REQUEST_UNASSIGN_TEMPLATE_FROM_PROJECT, branchName = "success") private DomainMessageSynchronousResult templateUnassignmentDone(String projectId, Set assignedTemplates) { DomainMessageSynchronousResult result = new DomainMessageSynchronousResult(MessageID.RESULT_UNASSIGN_TEMPLATE_FROM_PROJECT); - SecHubProjectTemplates templates = new SecHubProjectTemplates(); + SecHubProjectTemplateData templates = new SecHubProjectTemplateData(); templates.setProjectId(projectId); templates.getTemplateIds().addAll(assignedTemplates); diff --git a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/MessageDataKeys.java b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/MessageDataKeys.java index b392b2dcf3..63b48d4e27 100644 --- a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/MessageDataKeys.java +++ b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/MessageDataKeys.java @@ -8,8 +8,8 @@ import com.mercedesbenz.sechub.sharedkernel.configuration.SecHubConfiguration; import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubDomainEncryptionStatus; import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubEncryptionData; -import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubProjectTemplates; -import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubProjectToTemplate; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectTemplateData; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectToTemplate; /** * @@ -70,7 +70,7 @@ private MessageDataKeys() { public static final MessageDataKey PROJECT_TO_TEMPLATE = createKey("sechub.project2template.data", SECHUB_PROJECT_TO_TEMPLATE_MESSAGE_DATA_PROVIDER); - public static final MessageDataKey PROJECT_TEMPLATES = createKey("sechub.project.templates.data", + public static final MessageDataKey PROJECT_TEMPLATES = createKey("sechub.project.templates.data", SECHUB_PROJECT_TEMPLATES_MESSAGE_DATA_PROVIDER); /** diff --git a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/SecHubProjectTemplatesMessageDataProvider.java b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/SecHubProjectTemplatesMessageDataProvider.java index 59d68a9536..2f318459e6 100644 --- a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/SecHubProjectTemplatesMessageDataProvider.java +++ b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/SecHubProjectTemplatesMessageDataProvider.java @@ -1,20 +1,20 @@ // SPDX-License-Identifier: MIT package com.mercedesbenz.sechub.sharedkernel.messaging; -import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubProjectTemplates; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectTemplateData; -public class SecHubProjectTemplatesMessageDataProvider implements MessageDataProvider { +public class SecHubProjectTemplatesMessageDataProvider implements MessageDataProvider { @Override - public SecHubProjectTemplates get(String json) { + public SecHubProjectTemplateData get(String json) { if (json == null) { return null; } - return SecHubProjectTemplates.fromString(json); + return SecHubProjectTemplateData.fromString(json); } @Override - public String getString(SecHubProjectTemplates data) { + public String getString(SecHubProjectTemplateData data) { if (data == null) { return null; } diff --git a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/SecHubProjectToTemplateMessageDataProvider.java b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/SecHubProjectToTemplateMessageDataProvider.java index d52ecc1e8e..10e2b082c6 100644 --- a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/SecHubProjectToTemplateMessageDataProvider.java +++ b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/messaging/SecHubProjectToTemplateMessageDataProvider.java @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT package com.mercedesbenz.sechub.sharedkernel.messaging; -import com.mercedesbenz.sechub.sharedkernel.encryption.SecHubProjectToTemplate; +import com.mercedesbenz.sechub.sharedkernel.template.SecHubProjectToTemplate; public class SecHubProjectToTemplateMessageDataProvider implements MessageDataProvider { diff --git a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/encryption/SecHubProjectTemplates.java b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/template/SecHubProjectTemplateData.java similarity index 56% rename from sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/encryption/SecHubProjectTemplates.java rename to sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/template/SecHubProjectTemplateData.java index 6afbe4e58e..b3ea8748f8 100644 --- a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/encryption/SecHubProjectTemplates.java +++ b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/template/SecHubProjectTemplateData.java @@ -1,14 +1,14 @@ // SPDX-License-Identifier: MIT -package com.mercedesbenz.sechub.sharedkernel.encryption; +package com.mercedesbenz.sechub.sharedkernel.template; import java.util.ArrayList; import java.util.List; import com.mercedesbenz.sechub.commons.model.JSONable; -public class SecHubProjectTemplates implements JSONable { +public class SecHubProjectTemplateData implements JSONable { - private static final SecHubProjectTemplates CONVERTER = new SecHubProjectTemplates(); + private static final SecHubProjectTemplateData CONVERTER = new SecHubProjectTemplateData(); private String projectId; @@ -26,13 +26,13 @@ public List getTemplateIds() { return templateIds; } - public static SecHubProjectTemplates fromString(String json) { + public static SecHubProjectTemplateData fromString(String json) { return CONVERTER.fromJSON(json); } @Override - public Class getJSONTargetClass() { - return SecHubProjectTemplates.class; + public Class getJSONTargetClass() { + return SecHubProjectTemplateData.class; } } diff --git a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/encryption/SecHubProjectToTemplate.java b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/template/SecHubProjectToTemplate.java similarity index 94% rename from sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/encryption/SecHubProjectToTemplate.java rename to sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/template/SecHubProjectToTemplate.java index 6a9b2bd623..3afdd991cd 100644 --- a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/encryption/SecHubProjectToTemplate.java +++ b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/template/SecHubProjectToTemplate.java @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -package com.mercedesbenz.sechub.sharedkernel.encryption; +package com.mercedesbenz.sechub.sharedkernel.template; import com.mercedesbenz.sechub.commons.model.JSONable;