protected Map<String, ProcessDefinition> getProcessDefinitionsForTenant(List<ProcessDefinition> processDefinitions) { Map<String, ProcessDefinition> definitionsForTenant = new HashMap<String, ProcessDefinition>(); for (ProcessDefinition definition : processDefinitions) { definitionsForTenant.put(definition.getTenantId(), definition); } return definitionsForTenant; }
@Override public void checkCreateProcessInstance(ProcessDefinition processDefinition) { if (!getTenantManager().isAuthenticatedTenant(processDefinition.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("create an instance of the process definition '"+ processDefinition.getId() + "'"); } }
@Override public void checkCreateProcessInstance(ProcessDefinition processDefinition) { if (!getTenantManager().isAuthenticatedTenant(processDefinition.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("create an instance of the process definition '"+ processDefinition.getId() + "'"); } }
@Override public void checkReadProcessDefinition(ProcessDefinition processDefinition) { if (!getTenantManager().isAuthenticatedTenant(processDefinition.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("get the process definition '"+ processDefinition.getId() + "'"); } }
@Override public void checkReadProcessDefinition(ProcessDefinition processDefinition) { if (!getTenantManager().isAuthenticatedTenant(processDefinition.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("get the process definition '"+ processDefinition.getId() + "'"); } }
@Override public void checkCreateMigrationPlan(ProcessDefinition sourceProcessDefinition, ProcessDefinition targetProcessDefinition) { String sourceTenant = sourceProcessDefinition.getTenantId(); String targetTenant = targetProcessDefinition.getTenantId(); if (!getTenantManager().isAuthenticatedTenant(sourceTenant)) { throw LOG.exceptionCommandWithUnauthorizedTenant("get process definition '" + sourceProcessDefinition.getId() + "'"); } if (!getTenantManager().isAuthenticatedTenant(targetTenant)) { throw LOG.exceptionCommandWithUnauthorizedTenant("get process definition '" + targetProcessDefinition.getId() + "'"); } if (sourceTenant != null && targetTenant != null && !sourceTenant.equals(targetTenant)) { throw ProcessEngineLogger.MIGRATION_LOGGER .cannotMigrateBetweenTenants(sourceTenant, targetTenant); } }
protected void applyProperties(ProcessInstantiationBuilderImpl instantiationBuilder, ProcessDefinition processDefinition, HistoricProcessInstance processInstance) { String tenantId = processInstance.getTenantId(); if (processDefinition.getTenantId() == null && tenantId != null) { instantiationBuilder.tenantId(tenantId); } if (!builder.isWithoutBusinessKey()) { instantiationBuilder.businessKey(processInstance.getBusinessKey()); } }
protected void applyProperties(ProcessInstantiationBuilderImpl instantiationBuilder, ProcessDefinition processDefinition, HistoricProcessInstance processInstance) { String tenantId = processInstance.getTenantId(); if (processDefinition.getTenantId() == null && tenantId != null) { instantiationBuilder.tenantId(tenantId); } if (!builder.isWithoutBusinessKey()) { instantiationBuilder.businessKey(processInstance.getBusinessKey()); } }
public void testQuerySortingAsc() { // exclude definitions without tenant id because of database-specific ordering List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc() .list(); assertThat(processDefinitions.size(), is(2)); assertThat(processDefinitions.get(0).getTenantId(), is(TENANT_ONE)); assertThat(processDefinitions.get(1).getTenantId(), is(TENANT_TWO)); }
public void testQuerySortingDesc() { // exclude definitions without tenant id because of database-specific ordering List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .desc() .list(); assertThat(processDefinitions.size(), is(2)); assertThat(processDefinitions.get(0).getTenantId(), is(TENANT_TWO)); assertThat(processDefinitions.get(1).getTenantId(), is(TENANT_ONE)); }
@Test public void getProcessDefinitionWithAuthenticatedTenant() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE)); ProcessDefinition definition = repositoryService.getProcessDefinition(processDefinitionId); assertThat(definition.getTenantId(), is(TENANT_ONE)); }
@Override public void checkMigrateProcessInstance(ExecutionEntity processInstance, ProcessDefinition targetProcessDefinition) { String sourceTenant = processInstance.getTenantId(); String targetTenant = targetProcessDefinition.getTenantId(); if (getTenantManager().isTenantCheckEnabled()) { if (processInstance != null && !getTenantManager().isAuthenticatedTenant(processInstance.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("migrate process instance '" + processInstance.getId() + "'"); } } if (targetTenant != null && (sourceTenant == null || !sourceTenant.equals(targetTenant))) { throw ProcessEngineLogger.MIGRATION_LOGGER .cannotMigrateInstanceBetweenTenants(processInstance.getId(), sourceTenant, targetTenant); } }
@Override public void checkMigrateProcessInstance(ExecutionEntity processInstance, ProcessDefinition targetProcessDefinition) { String sourceTenant = processInstance.getTenantId(); String targetTenant = targetProcessDefinition.getTenantId(); if (getTenantManager().isTenantCheckEnabled()) { if (processInstance != null && !getTenantManager().isAuthenticatedTenant(processInstance.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("migrate process instance '" + processInstance.getId() + "'"); } } if (targetTenant != null && (sourceTenant == null || !sourceTenant.equals(targetTenant))) { throw ProcessEngineLogger.MIGRATION_LOGGER .cannotMigrateInstanceBetweenTenants(processInstance.getId(), sourceTenant, targetTenant); } }
@Test public void updateHistoryTimeToLiveWithAuthenticatedTenant() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE)); repositoryService.updateProcessDefinitionHistoryTimeToLive(processDefinitionId, 6); ProcessDefinition definition = repositoryService.getProcessDefinition(processDefinitionId); assertThat(definition.getTenantId(), is(TENANT_ONE)); assertThat(definition.getHistoryTimeToLive(), is(6)); }
@Test public void getProcessDefinitionDisabledTenantCheck() { processEngineConfiguration.setTenantCheckEnabled(false); identityService.setAuthentication("user", null, null); ProcessDefinition definition = repositoryService.getProcessDefinition(processDefinitionId); assertThat(definition.getTenantId(), is(TENANT_ONE)); }
@Test public void updateHistoryTimeToLiveDisabledTenantCheck() { processEngineConfiguration.setTenantCheckEnabled(false); identityService.setAuthentication("user", null, null); repositoryService.updateProcessDefinitionHistoryTimeToLive(processDefinitionId, 6); ProcessDefinition definition = repositoryService.getProcessDefinition(processDefinitionId); assertThat(definition.getTenantId(), is(TENANT_ONE)); assertThat(definition.getHistoryTimeToLive(), is(6)); }
protected void createJobDefinition(ProcessDefinition processDefinition, JobDeclaration<?, ?> jobDeclaration) { final JobDefinitionManager jobDefinitionManager = getJobDefinitionManager(); JobDefinitionEntity jobDefinitionEntity = new JobDefinitionEntity(jobDeclaration); jobDefinitionEntity.setProcessDefinitionId(processDefinition.getId()); jobDefinitionEntity.setProcessDefinitionKey(processDefinition.getKey()); jobDefinitionEntity.setTenantId(processDefinition.getTenantId()); jobDefinitionManager.insert(jobDefinitionEntity); jobDeclaration.setJobDefinitionId(jobDefinitionEntity.getId()); }
protected void createJobDefinition(ProcessDefinition processDefinition, JobDeclaration<?, ?> jobDeclaration) { final JobDefinitionManager jobDefinitionManager = getJobDefinitionManager(); JobDefinitionEntity jobDefinitionEntity = new JobDefinitionEntity(jobDeclaration); jobDefinitionEntity.setProcessDefinitionId(processDefinition.getId()); jobDefinitionEntity.setProcessDefinitionKey(processDefinition.getKey()); jobDefinitionEntity.setTenantId(processDefinition.getTenantId()); jobDefinitionManager.insert(jobDefinitionEntity); jobDeclaration.setJobDefinitionId(jobDefinitionEntity.getId()); }
public void testQueryByLatestWithoutTenantId() { // deploy a second version without tenant id deployment(emptyProcess); ProcessDefinitionQuery query = repositoryService .createProcessDefinitionQuery() .processDefinitionKey(PROCESS_DEFINITION_KEY) .latestVersion() .withoutTenantId(); assertThat(query.count(), is(1L)); ProcessDefinition processDefinition = query.singleResult(); assertThat(processDefinition.getTenantId(), is(nullValue())); assertThat(processDefinition.getVersion(), is(2)); }
public void testPropagateTenantIdToProcessDefinition() { deploymentForTenant(TENANT_ID, Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY).done()); ProcessDefinition processDefinition = repositoryService .createProcessDefinitionQuery() .singleResult(); assertNotNull(processDefinition); // inherit the tenant id from deployment assertEquals(TENANT_ID, processDefinition.getTenantId()); }