Class AbstractPlatformSecurityService
java.lang.Object
com.flowable.platform.security.service.AbstractPlatformSecurityService
- All Implemented Interfaces:
PermissionServiceRegistryAware,Aware
- Direct Known Subclasses:
CasePermissionServiceImpl,ExternalWorkerJobPermissionService,PlatformAgentService,PlatformAppService,PlatformCaseDefinitionService,PlatformCaseInstanceService,PlatformCasePageService,PlatformCommentService,PlatformContentItemService,PlatformEntityLinkService,PlatformPageService,PlatformProcessDefinitionService,PlatformProcessInstanceService,PlatformStandardDataQuerySafeQueryTransformer,PlatformTaskService,ProcessPermissionServiceImpl,TaskPermissionServiceImpl,WorkDefinitionService,WorkIndexService
public abstract class AbstractPlatformSecurityService
extends Object
implements PermissionServiceRegistryAware
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String[]protected static final Stringprotected org.flowable.cmmn.api.CmmnRepositoryServiceprotected org.flowable.cmmn.api.CmmnRuntimeServiceprotected org.flowable.cmmn.api.CmmnTaskServiceprotected Stringprotected SecurityPolicyModelprotected static final Stringprotected booleanprotected PermissionServiceRegistryprotected PlatformSecurityInterceptorprotected PolicyRepositoryServiceprotected static final Stringprotected org.flowable.engine.RepositoryServiceprotected org.flowable.engine.RuntimeServiceprotected static final Stringprotected static final Stringprotected org.flowable.engine.TaskService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAdditionalPermissions(List<String> permissions, String role, String prefix, SecurityPolicyModel securityPolicyModel) protected booleanprotected booleanfetchCasePermissionMappings(String caseInstanceId, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, String tenantId) fetchCasePermissionMappings(org.flowable.cmmn.api.runtime.CaseInstance caseInstance, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) protected SecurityPolicyModelfetchCaseSecurityPolicyModel(org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, String tenantId) fetchPermissions(SecurityPolicyModel securityPolicyModel, String prefix, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String userId, Set<String> groupKeys) fetchPermissionsForTask(SecurityPolicyModel securityPolicyModel, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String userId, Set<String> groupKeys) fetchProcessPermissionMappings(String processInstanceId, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.engine.repository.ProcessDefinition processDefinition, String tenantId) fetchProcessPermissionMappings(org.flowable.engine.runtime.ProcessInstance processInstance, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) protected SecurityPolicyModelfetchProcessSecurityPolicyModel(org.flowable.engine.repository.ProcessDefinition processDefinition, String tenantId) protected SecurityPolicyModelfetchSecurityPolicyModel(org.flowable.bpmn.model.Process process, String tenantId) protected SecurityPolicyModelfetchSecurityPolicyModel(org.flowable.cmmn.model.Case caze, String tenantId) protected SecurityPolicyModelfetchSecurityPolicyModelForCaseInstance(String caseInstanceId) protected SecurityPolicyModelfetchSecurityPolicyModelForProcessInstance(String processInstanceId) protected SecurityPolicyModelfetchSecurityPolicyModelForTask(org.flowable.bpmn.model.FlowElement flowElement, org.flowable.bpmn.model.Process process, String tenantId) protected SecurityPolicyModelfetchSecurityPolicyModelForTask(org.flowable.cmmn.model.PlanItemDefinition planItemDefinition, org.flowable.cmmn.model.Case caze, String tenantId) fetchTaskPermissionMappings(String taskId, String taskDefinitionKey, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, String tenantId) fetchTaskPermissionMappings(String taskId, String taskDefinitionKey, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.engine.repository.ProcessDefinition processDefinition, String tenantId) fetchTaskPermissionMappings(org.flowable.task.api.Task task, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) fetchTaskPermissionMappingsForCase(String taskDefinitionKey, String caseDefinitionId, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String tenantId) fetchTaskPermissionMappingsForProcess(String taskDefinitionKey, String processDefinitionId, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String tenantId) protected SecurityPolicyModelfetchTaskSecurityPolicyModelForCase(String taskDefinitionKey, String caseDefinitionId, String tenantId) protected SecurityPolicyModelfetchTaskSecurityPolicyModelForProcess(String taskDefinitionKey, String processDefinitionId, String tenantId) filterPermissionsForRole(String role, String prefix, SecurityPolicyModel securityPolicyModel) protected StringgetCmmnExtensionElementValue(String name, Map<String, List<org.flowable.cmmn.model.ExtensionElement>> extensionElements) protected SecurityScopeprotected Stringprotected Stringprotected SecurityPolicyModelgetDefaultSecurityPolicyModel(String tenantId) protected StringgetExtensionElementValue(String name, Map<String, List<org.flowable.bpmn.model.ExtensionElement>> extensionElements) protected SecurityPolicyModelgetSecurityPolicyModelByKey(String securityPolicyModelKey, String tenantId) protected booleangroupOrUserMatches(String identityLinkUser, String identityLinkGroup, String userId, Set<String> groupKeys) protected booleangroupOrUserMatches(org.flowable.identitylink.api.IdentityLinkInfo identityLink, String userId, Set<String> groupKeys) protected booleanhasAnyMatchingIdentityLink(Collection<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String userId, Set<String> groupKeys) protected booleanhasAssigneeOrOwnerIdentityLink(List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) protected booleanhasPermissionForEntityLinks(String permission, List<org.flowable.entitylink.api.EntityLink> entityLinks, String userId, Set<String> groupKeys, String tenantId) protected booleanhasPermissionForHistoricEntityLinks(String permission, List<org.flowable.entitylink.api.history.HistoricEntityLink> entityLinks, String userId, Set<String> groupKeys, String tenantId) voidsetPermissionServiceRegistry(PermissionServiceRegistry permissionServiceRegistry) Set the PermissionRegistry that this object should use.protected StringtranslatePermissionForScope(String permission, String scopeType)
-
Field Details
-
SECURITY_POLICY_MODEL
- See Also:
-
CASE_PREFIX
- See Also:
-
PROCESS_PREFIX
- See Also:
-
TASK_PREFIX
- See Also:
-
EXTERNAL_WORKER_PREFIX
- See Also:
-
repositoryService
-
cmmnRepositoryService
@Autowired(required=false) protected org.flowable.cmmn.api.CmmnRepositoryService cmmnRepositoryService -
runtimeService
-
cmmnRuntimeService
-
taskService
-
cmmnTaskService
-
policyRepositoryService
-
platformSecurityInterceptor
-
additionalAdminUsers
-
permissionServiceRegistry
-
defaultSecurityPolicyKey
-
defaultSecurityPolicyModel
-
inspectEnabled
-
-
Constructor Details
-
AbstractPlatformSecurityService
public AbstractPlatformSecurityService()
-
-
Method Details
-
fetchCasePermissionMappings
-
fetchCasePermissionMappings
-
fetchCaseSecurityPolicyModel
protected SecurityPolicyModel fetchCaseSecurityPolicyModel(org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, String tenantId) -
fetchProcessPermissionMappings
-
fetchProcessPermissionMappings
-
fetchProcessSecurityPolicyModel
protected SecurityPolicyModel fetchProcessSecurityPolicyModel(org.flowable.engine.repository.ProcessDefinition processDefinition, String tenantId) -
fetchTaskPermissionMappingsForProcess
-
fetchTaskPermissionMappingsForCase
-
fetchTaskSecurityPolicyModelForProcess
protected SecurityPolicyModel fetchTaskSecurityPolicyModelForProcess(String taskDefinitionKey, String processDefinitionId, String tenantId) -
fetchSecurityPolicyModelForProcessInstance
-
fetchTaskSecurityPolicyModelForCase
protected SecurityPolicyModel fetchTaskSecurityPolicyModelForCase(String taskDefinitionKey, String caseDefinitionId, String tenantId) -
fetchSecurityPolicyModelForCaseInstance
-
fetchTaskPermissionMappings
-
fetchTaskPermissionMappings
-
fetchTaskPermissionMappings
-
fetchPermissions
-
fetchPermissionsForTask
-
hasAssigneeOrOwnerIdentityLink
protected boolean hasAssigneeOrOwnerIdentityLink(List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) -
filterPermissionsForRole
protected List<String> filterPermissionsForRole(String role, String prefix, SecurityPolicyModel securityPolicyModel) -
addAdditionalPermissions
protected void addAdditionalPermissions(List<String> permissions, String role, String prefix, SecurityPolicyModel securityPolicyModel) -
fetchSecurityPolicyModel
protected SecurityPolicyModel fetchSecurityPolicyModel(org.flowable.cmmn.model.Case caze, String tenantId) -
fetchSecurityPolicyModel
protected SecurityPolicyModel fetchSecurityPolicyModel(org.flowable.bpmn.model.Process process, String tenantId) -
fetchSecurityPolicyModelForTask
protected SecurityPolicyModel fetchSecurityPolicyModelForTask(org.flowable.bpmn.model.FlowElement flowElement, org.flowable.bpmn.model.Process process, String tenantId) -
fetchSecurityPolicyModelForTask
protected SecurityPolicyModel fetchSecurityPolicyModelForTask(org.flowable.cmmn.model.PlanItemDefinition planItemDefinition, org.flowable.cmmn.model.Case caze, String tenantId) -
getCurrentGroupKeys
-
getCurrentUserId
-
getCurrentTenantId
-
getCurrentSecurityScope
-
currentUserHasAdminRights
protected boolean currentUserHasAdminRights() -
currentUserIsSuperAdmin
protected boolean currentUserIsSuperAdmin() -
groupOrUserMatches
-
groupOrUserMatches
-
hasAnyMatchingIdentityLink
protected boolean hasAnyMatchingIdentityLink(Collection<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String userId, Set<String> groupKeys) -
hasPermissionForEntityLinks
-
hasPermissionForHistoricEntityLinks
-
setPermissionServiceRegistry
Description copied from interface:PermissionServiceRegistryAwareSet the PermissionRegistry that this object should use.- Specified by:
setPermissionServiceRegistryin interfacePermissionServiceRegistryAware- Parameters:
permissionServiceRegistry- to be used by this object
-
getSecurityPolicyModelByKey
protected SecurityPolicyModel getSecurityPolicyModelByKey(String securityPolicyModelKey, String tenantId) -
getDefaultSecurityPolicyModel
-
getCmmnExtensionElementValue
-
getExtensionElementValue
-
translatePermissionForScope
-