Skip to content

Commit f42cce7

Browse files
committed
[backend] feat(multitenancy): adding builtin connectors for new tenants (#3505)
1 parent b2925ac commit f42cce7

15 files changed

Lines changed: 45 additions & 58 deletions

openaev-api/src/test/java/io/openaev/importer/V1_DataImporterTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import io.openaev.context.TenantContext;
1010
import io.openaev.database.model.*;
1111
import io.openaev.database.repository.*;
12-
import io.openaev.integration.Manager;
1312
import io.openaev.integration.impl.injectors.openaev.OpenaevInjectorIntegrationFactory;
1413
import io.openaev.rest.domain.enums.PresetDomain;
1514
import io.openaev.utils.constants.Constants;
@@ -111,7 +110,7 @@ void testImportData() {
111110
@Test
112111
@Transactional
113112
void testScenario_with_attackpattern() throws Exception {
114-
new Manager(List.of(openaevInjectorIntegrationFactory)).monitorIntegrations();
113+
openaevInjectorIntegrationFactory.registerConnectorForTenant();
115114
MockitoAnnotations.openMocks(this);
116115
ObjectMapper mapper = new ObjectMapper();
117116
String jsonContent =
@@ -146,7 +145,7 @@ void testScenario_with_attackpattern() throws Exception {
146145
payloadRepository.deleteAll();
147146
entityManager.flush();
148147
entityManager.clear();
149-
new Manager(List.of(openaevInjectorIntegrationFactory)).monitorIntegrations();
148+
openaevInjectorIntegrationFactory.registerConnectorForTenant();
150149

151150
this.importer.importData(
152151
this.importNode, Map.of(), null, null, null, null, Constants.IMPORTED_OBJECT_NAME_SUFFIX);

openaev-api/src/test/java/io/openaev/injector_contract/InjectorContratApiTest.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
1111

1212
import io.openaev.IntegrationTest;
13-
import io.openaev.integration.Manager;
1413
import io.openaev.integration.impl.injectors.challenge.ChallengeInjectorIntegrationFactory;
1514
import io.openaev.integration.impl.injectors.channel.ChannelInjectorIntegrationFactory;
1615
import io.openaev.integration.impl.injectors.email.EmailInjectorIntegrationFactory;
@@ -38,13 +37,10 @@ class InjectorContratApiTest extends IntegrationTest {
3837

3938
@BeforeEach
4039
public void before() throws Exception {
41-
new Manager(
42-
List.of(
43-
emailInjectorIntegrationFactory,
44-
challengeInjectorIntegrationFactory,
45-
channelInjectorIntegrationFactory,
46-
manualInjectorIntegrationFactory))
47-
.monitorIntegrations();
40+
emailInjectorIntegrationFactory.registerConnectorForTenant();
41+
challengeInjectorIntegrationFactory.registerConnectorForTenant();
42+
channelInjectorIntegrationFactory.registerConnectorForTenant();
43+
manualInjectorIntegrationFactory.registerConnectorForTenant();
4844
}
4945

5046
@Nested

openaev-api/src/test/java/io/openaev/injects/email/EmailExecutorTest.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@
1414
import io.openaev.execution.ExecutableInject;
1515
import io.openaev.execution.ExecutionContext;
1616
import io.openaev.execution.ExecutionContextService;
17+
import io.openaev.executors.InjectorContext;
18+
import io.openaev.injectors.email.EmailExecutor;
1719
import io.openaev.injectors.email.model.EmailContent;
18-
import io.openaev.integration.Manager;
20+
import io.openaev.injectors.email.service.EmailService;
1921
import io.openaev.integration.impl.injectors.email.EmailInjectorIntegrationFactory;
2022
import io.openaev.model.inject.form.Expectation;
2123
import io.openaev.utils.fixtures.*;
@@ -41,6 +43,9 @@ public class EmailExecutorTest extends IntegrationTest {
4143
@Autowired private UserRepository userRepository;
4244
@Autowired private InjectExpectationRepository injectExpectationRepository;
4345
@Autowired private ExecutionContextService executionContextService;
46+
@Autowired private InjectorContext injectorContext;
47+
@Autowired private EmailService emailService;
48+
@Autowired private io.openaev.service.InjectExpectationService injectExpectationService;
4449
@Resource protected ObjectMapper mapper;
4550
@Autowired private InjectorContractFixture injectorContractFixture;
4651
@Autowired private EmailInjectorIntegrationFactory emailInjectorIntegrationFactory;
@@ -104,9 +109,9 @@ void process() throws Exception {
104109
Execution execution = new Execution(executableInject.isRuntime());
105110

106111
// -- EXECUTE --
107-
Manager manager = new Manager(List.of(emailInjectorIntegrationFactory));
108-
manager.monitorIntegrations();
109-
io.openaev.executors.Injector emailExecutor = manager.requestEmailInjector();
112+
emailInjectorIntegrationFactory.registerConnectorForTenant();
113+
io.openaev.executors.Injector emailExecutor =
114+
new EmailExecutor(injectorContext, emailService, injectExpectationService);
110115
emailExecutor.process(execution, executableInject);
111116

112117
// -- ASSERT --
@@ -150,9 +155,9 @@ void givenExpectation_shouldComputeInjectExpectationAndInjectExpectationResult()
150155
Execution execution = new Execution(executableInject.isRuntime());
151156

152157
// -- EXECUTE --
153-
Manager manager = new Manager(List.of(emailInjectorIntegrationFactory));
154-
manager.monitorIntegrations();
155-
io.openaev.executors.Injector emailExecutor = manager.requestEmailInjector();
158+
emailInjectorIntegrationFactory.registerConnectorForTenant();
159+
io.openaev.executors.Injector emailExecutor =
160+
new EmailExecutor(injectorContext, emailService, injectExpectationService);
156161
emailExecutor.process(execution, executableInject);
157162

158163
// -- ASSERT --

openaev-api/src/test/java/io/openaev/injects/technical_inject/OpenAEVImplantExecutorTest.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
import io.openaev.database.model.*;
1313
import io.openaev.database.repository.InjectExpectationRepository;
1414
import io.openaev.execution.ExecutableInject;
15-
import io.openaev.injectors.openaev.OpenAEVImplantContract;
15+
import io.openaev.executors.InjectorContext;
16+
import io.openaev.injectors.openaev.OpenAEVImplantExecutor;
1617
import io.openaev.injectors.openaev.model.OpenAEVImplantInjectContent;
17-
import io.openaev.integration.Manager;
1818
import io.openaev.integration.impl.injectors.openaev.OpenaevInjectorIntegrationFactory;
1919
import io.openaev.model.inject.form.Expectation;
2020
import io.openaev.utils.fixtures.*;
@@ -40,6 +40,10 @@
4040
public class OpenAEVImplantExecutorTest extends IntegrationTest {
4141
@Autowired private OpenaevInjectorIntegrationFactory openaevInjectorIntegrationFactory;
4242
@Autowired private InjectExpectationRepository injectExpectationRepository;
43+
@Autowired private InjectorContext injectorContext;
44+
@Autowired private io.openaev.service.AssetGroupService assetGroupService;
45+
@Autowired private io.openaev.service.InjectExpectationService injectExpectationService;
46+
@Autowired private io.openaev.rest.inject.service.InjectService injectService;
4347

4448
@Autowired private InjectComposer injectComposer;
4549
@Autowired private AssetGroupComposer assetGroupComposer;
@@ -124,10 +128,9 @@ void givenExpectation_shouldComputeInjectExpectationAndInjectExpectationResult(
124128
expectation.setExpectationGroup(false);
125129

126130
openaevInjectorIntegrationFactory.registerConnectorForTenant();
127-
Manager manager = new Manager(List.of(openaevInjectorIntegrationFactory));
128-
manager.monitorIntegrations();
129131
io.openaev.executors.Injector openAEVImplantExecutor =
130-
manager.requestInjectorExecutorByType(OpenAEVImplantContract.TYPE);
132+
new OpenAEVImplantExecutor(
133+
injectorContext, assetGroupService, injectExpectationService, injectService);
131134

132135
Inject inject = createTechnicalInjectHelper(List.of(expectation));
133136
Injection injection = mock(Injection.class);

openaev-api/src/test/java/io/openaev/rest/ChallengeApiTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import io.openaev.database.repository.ChallengeRepository;
2121
import io.openaev.database.repository.InjectRepository;
2222
import io.openaev.database.repository.InjectorContractRepository;
23-
import io.openaev.integration.Manager;
2423
import io.openaev.integration.impl.injectors.challenge.ChallengeInjectorIntegrationFactory;
2524
import io.openaev.service.scenario.ScenarioService;
2625
import io.openaev.utils.mockUser.WithMockUser;
@@ -48,7 +47,7 @@ class ChallengeApiTest extends IntegrationTest {
4847

4948
@BeforeEach
5049
public void before() throws Exception {
51-
new Manager(List.of(challengeInjectorIntegrationFactory)).monitorIntegrations();
50+
challengeInjectorIntegrationFactory.registerConnectorForTenant();
5251
}
5352

5453
// -- SCENARIOS --

openaev-api/src/test/java/io/openaev/rest/ExerciseLessonsApiTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import io.openaev.database.repository.LessonsCategoryRepository;
2121
import io.openaev.database.repository.TeamRepository;
2222
import io.openaev.database.repository.UserRepository;
23-
import io.openaev.integration.Manager;
2423
import io.openaev.integration.impl.injectors.email.EmailInjectorIntegrationFactory;
2524
import io.openaev.rest.exercise.service.ExerciseService;
2625
import io.openaev.rest.lessons.form.LessonsSendInput;
@@ -61,7 +60,7 @@ public class ExerciseLessonsApiTest extends IntegrationTest {
6160

6261
@BeforeAll
6362
void beforeAll() throws Exception {
64-
new Manager(List.of(emailInjectorIntegrationFactory)).monitorIntegrations();
63+
emailInjectorIntegrationFactory.registerConnectorForTenant();
6564
LESSONCATEGORY = getLessonCategory();
6665
}
6766

openaev-api/src/test/java/io/openaev/rest/ExpectationApiTest.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import io.openaev.injectors.challenge.ChallengeContract;
3131
import io.openaev.injectors.email.EmailContract;
3232
import io.openaev.injectors.openaev.OpenAEVImplantContract;
33-
import io.openaev.integration.Manager;
3433
import io.openaev.integration.impl.injectors.challenge.ChallengeInjectorIntegrationFactory;
3534
import io.openaev.integration.impl.injectors.email.EmailInjectorIntegrationFactory;
3635
import io.openaev.integration.impl.injectors.openaev.OpenaevInjectorIntegrationFactory;
@@ -850,12 +849,9 @@ class AvailableInjectExpectationsForInjects {
850849
@Test
851850
@DisplayName("Get available InjectExpectations for injects")
852851
void getAvailableInjectExpectationsForInjects() throws Exception {
853-
new Manager(
854-
List.of(
855-
emailInjectorIntegrationFactory,
856-
challengeInjectorIntegrationFactory,
857-
openaevInjectorIntegrationFactory))
858-
.monitorIntegrations();
852+
emailInjectorIntegrationFactory.registerConnectorForTenant();
853+
challengeInjectorIntegrationFactory.registerConnectorForTenant();
854+
openaevInjectorIntegrationFactory.registerConnectorForTenant();
859855
em.flush();
860856
em.clear();
861857
List<InjectorContract> injectorContracts =

openaev-api/src/test/java/io/openaev/rest/exercise/ExerciseApiExportTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import io.openaev.database.model.*;
1414
import io.openaev.database.model.Tag;
1515
import io.openaev.export.Mixins;
16-
import io.openaev.integration.Manager;
1716
import io.openaev.integration.impl.injectors.challenge.ChallengeInjectorIntegrationFactory;
1817
import io.openaev.integration.impl.injectors.channel.ChannelInjectorIntegrationFactory;
1918
import io.openaev.rest.exercise.exports.ExerciseFileExport;
@@ -84,8 +83,8 @@ void before() throws Exception {
8483
tagComposer.reset();
8584
exerciseComposer.reset();
8685
payloadComposer.reset();
87-
new Manager(List.of(channelInjectorIntegrationFactory, challengeInjectorIntegrationFactory))
88-
.monitorIntegrations();
86+
channelInjectorIntegrationFactory.registerConnectorForTenant();
87+
challengeInjectorIntegrationFactory.registerConnectorForTenant();
8988

9089
// delete the test files from the minio service
9190
for (String fileName : WELL_KNOWN_FILES.keySet()) {

openaev-api/src/test/java/io/openaev/rest/exercise/imports/ExerciseApiImportWithExistingItemsTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import io.openaev.database.model.*;
1212
import io.openaev.database.model.Tag;
1313
import io.openaev.database.repository.*;
14-
import io.openaev.integration.Manager;
1514
import io.openaev.integration.impl.injectors.challenge.ChallengeInjectorIntegrationFactory;
1615
import io.openaev.integration.impl.injectors.channel.ChannelInjectorIntegrationFactory;
1716
import io.openaev.rest.exercise.exports.ExportOptions;
@@ -77,8 +76,8 @@ public class ExerciseApiImportWithExistingItemsTest extends IntegrationTest {
7776

7877
@BeforeEach
7978
void before() throws Exception {
80-
new Manager(List.of(channelInjectorIntegrationFactory, challengeInjectorIntegrationFactory))
81-
.monitorIntegrations();
79+
channelInjectorIntegrationFactory.registerConnectorForTenant();
80+
challengeInjectorIntegrationFactory.registerConnectorForTenant();
8281

8382
lessonsQuestionsComposer.reset();
8483
lessonsCategoryComposer.reset();

openaev-api/src/test/java/io/openaev/rest/exercise/imports/ExerciseApiImportWithoutExistingItemsTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import io.openaev.database.model.*;
1212
import io.openaev.database.model.Tag;
1313
import io.openaev.database.repository.*;
14-
import io.openaev.integration.Manager;
1514
import io.openaev.integration.impl.injectors.challenge.ChallengeInjectorIntegrationFactory;
1615
import io.openaev.rest.exercise.exports.ExportOptions;
1716
import io.openaev.rest.exercise.service.ExportService;
@@ -88,7 +87,7 @@ void before() throws Exception {
8887
documentComposer.reset();
8988
tagComposer.reset();
9089
exerciseComposer.reset();
91-
new Manager(List.of(challengeInjectorIntegrationFactory)).monitorIntegrations();
90+
challengeInjectorIntegrationFactory.registerConnectorForTenant();
9291
}
9392

9493
// this is part of the "Arrange" part of the AAA pattern for the following tests

0 commit comments

Comments
 (0)