Class AbstractPlatformSecurityService
java.lang.Object
com.flowable.platform.security.service.AbstractPlatformSecurityService
- All Implemented Interfaces:
PermissionServiceRegistryAware,org.springframework.beans.factory.Aware
- Direct Known Subclasses:
CasePermissionServiceImpl,ExternalWorkerJobPermissionService,PlatformAppService,PlatformCaseDefinitionService,PlatformCaseInstanceService,PlatformCasePageService,PlatformCommentService,PlatformContentItemService,PlatformFolderItemService,PlatformProcessDefinitionService,PlatformProcessInstanceService,PlatformTaskService,ProcessPermissionServiceImpl,TaskPermissionServiceImpl,WorkDefinitionService,WorkIndexService
public abstract class AbstractPlatformSecurityService extends java.lang.Object implements PermissionServiceRegistryAware
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String[]additionalAdminUsersprotected static java.lang.StringCASE_PREFIXprotected org.flowable.cmmn.api.CmmnRepositoryServicecmmnRepositoryServiceprotected org.flowable.cmmn.api.CmmnRuntimeServicecmmnRuntimeServiceprotected org.flowable.cmmn.api.CmmnTaskServicecmmnTaskServiceprotected java.lang.StringdefaultSecurityPolicyKeyprotected SecurityPolicyModeldefaultSecurityPolicyModelprotected booleaninspectEnabledprotected PermissionServiceRegistrypermissionServiceRegistryprotected com.flowable.core.spring.security.interceptor.PlatformSecurityInterceptorplatformSecurityInterceptorprotected PolicyRepositoryServicepolicyRepositoryServiceprotected static java.lang.StringPROCESS_PREFIXprotected org.flowable.engine.RepositoryServicerepositoryServiceprotected org.flowable.engine.RuntimeServiceruntimeServiceprotected static java.lang.StringSECURITY_POLICY_MODELprotected static java.lang.StringTASK_PREFIXprotected org.flowable.engine.TaskServicetaskService -
Constructor Summary
Constructors Constructor Description AbstractPlatformSecurityService() -
Method Summary
Modifier and Type Method Description protected booleancurrentUserHasAdminRights()protected booleancurrentUserIsSuperAdmin()protected java.util.List<java.lang.String>fetchCasePermissionMappings(java.lang.String caseInstanceId, java.lang.String startUserId, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, java.lang.String tenantId)protected java.util.List<java.lang.String>fetchCasePermissionMappings(org.flowable.cmmn.api.runtime.CaseInstance caseInstance, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks)protected SecurityPolicyModelfetchCaseSecurityPolicyModel(org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, java.lang.String tenantId)protected java.util.List<java.lang.String>fetchPermissions(SecurityPolicyModel securityPolicyModel, java.lang.String prefix, java.lang.String startUserId, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys)protected java.util.List<java.lang.String>fetchPermissionsForTask(SecurityPolicyModel securityPolicyModel, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys)protected java.util.List<java.lang.String>fetchProcessPermissionMappings(java.lang.String processInstanceId, java.lang.String startUserId, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.engine.repository.ProcessDefinition processDefinition, java.lang.String tenantId)protected java.util.List<java.lang.String>fetchProcessPermissionMappings(org.flowable.engine.runtime.ProcessInstance processInstance, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks)protected SecurityPolicyModelfetchProcessSecurityPolicyModel(org.flowable.engine.repository.ProcessDefinition processDefinition, java.lang.String tenantId)protected SecurityPolicyModelfetchSecurityPolicyModel(org.flowable.bpmn.model.Process process, java.lang.String tenantId)protected SecurityPolicyModelfetchSecurityPolicyModel(org.flowable.cmmn.model.Case caze, java.lang.String tenantId)protected SecurityPolicyModelfetchSecurityPolicyModelForCaseInstance(java.lang.String caseInstanceId)protected SecurityPolicyModelfetchSecurityPolicyModelForProcessInstance(java.lang.String processInstanceId)protected SecurityPolicyModelfetchSecurityPolicyModelForTask(org.flowable.bpmn.model.FlowElement flowElement, org.flowable.bpmn.model.Process process, java.lang.String tenantId)protected SecurityPolicyModelfetchSecurityPolicyModelForTask(org.flowable.cmmn.model.PlanItemDefinition planItemDefinition, org.flowable.cmmn.model.Case caze, java.lang.String tenantId)protected java.util.List<java.lang.String>fetchTaskPermissionMappings(java.lang.String taskId, java.lang.String taskDefinitionKey, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, java.lang.String tenantId)protected java.util.List<java.lang.String>fetchTaskPermissionMappings(java.lang.String taskId, java.lang.String taskDefinitionKey, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.engine.repository.ProcessDefinition processDefinition, java.lang.String tenantId)protected java.util.List<java.lang.String>fetchTaskPermissionMappings(org.flowable.task.api.Task task, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks)protected java.util.List<java.lang.String>fetchTaskPermissionMappingsForCase(java.lang.String taskDefinitionKey, java.lang.String caseDefinitionId, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String tenantId)protected java.util.List<java.lang.String>fetchTaskPermissionMappingsForProcess(java.lang.String taskDefinitionKey, java.lang.String processDefinitionId, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String tenantId)protected SecurityPolicyModelfetchTaskSecurityPolicyModelForCase(java.lang.String taskDefinitionKey, java.lang.String caseDefinitionId, java.lang.String tenantId)protected SecurityPolicyModelfetchTaskSecurityPolicyModelForProcess(java.lang.String taskDefinitionKey, java.lang.String processDefinitionId, java.lang.String tenantId)protected java.util.List<java.lang.String>filterPermissionsForRole(java.lang.String role, java.lang.String prefix, SecurityPolicyModel securityPolicyModel)protected java.lang.StringgetCmmnExtensionElementValue(java.lang.String name, java.util.Map<java.lang.String,java.util.List<org.flowable.cmmn.model.ExtensionElement>> extensionElements)protected java.util.Set<java.lang.String>getCurrentGroupKeys()protected java.lang.StringgetCurrentTenantId()protected java.lang.StringgetCurrentUserId()protected SecurityPolicyModelgetDefaultSecurityPolicyModel(java.lang.String tenantId)protected java.lang.StringgetExtensionElementValue(java.lang.String name, java.util.Map<java.lang.String,java.util.List<org.flowable.bpmn.model.ExtensionElement>> extensionElements)protected SecurityPolicyModelgetSecurityPolicyModelByKey(java.lang.String securityPolicyModelKey, java.lang.String tenantId)protected booleangroupOrUserMatches(java.lang.String identityLinkUser, java.lang.String identityLinkGroup, java.lang.String userId, java.util.Set<java.lang.String> groupKeys)protected booleangroupOrUserMatches(org.flowable.identitylink.api.IdentityLinkInfo identityLink, java.lang.String userId, java.util.Set<java.lang.String> groupKeys)protected booleanhasAnyMatchingIdentityLink(java.util.Collection<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys)protected booleanhasAssigneeOrOwnerIdentityLink(java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks)protected booleanhasPermissionForEntityLinks(java.lang.String permission, java.util.List<org.flowable.entitylink.api.EntityLink> entityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys, java.lang.String tenantId)protected booleanhasPermissionForHistoricEntityLinks(java.lang.String permission, java.util.List<org.flowable.entitylink.api.history.HistoricEntityLink> entityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys, java.lang.String tenantId)voidsetPermissionServiceRegistry(PermissionServiceRegistry permissionServiceRegistry)Set the PermissionRegistry that this object should use.protected java.lang.StringtranslatePermissionForScope(java.lang.String permission, java.lang.String scopeType)
-
Field Details
-
SECURITY_POLICY_MODEL
protected static final java.lang.String SECURITY_POLICY_MODEL- See Also:
- Constant Field Values
-
CASE_PREFIX
protected static final java.lang.String CASE_PREFIX- See Also:
- Constant Field Values
-
PROCESS_PREFIX
protected static final java.lang.String PROCESS_PREFIX- See Also:
- Constant Field Values
-
TASK_PREFIX
protected static final java.lang.String TASK_PREFIX- See Also:
- Constant Field Values
-
repositoryService
@Autowired(required=false) protected org.flowable.engine.RepositoryService repositoryService -
cmmnRepositoryService
@Autowired(required=false) protected org.flowable.cmmn.api.CmmnRepositoryService cmmnRepositoryService -
runtimeService
@Autowired(required=false) protected org.flowable.engine.RuntimeService runtimeService -
cmmnRuntimeService
@Autowired(required=false) protected org.flowable.cmmn.api.CmmnRuntimeService cmmnRuntimeService -
taskService
@Autowired(required=false) protected org.flowable.engine.TaskService taskService -
cmmnTaskService
@Autowired(required=false) protected org.flowable.cmmn.api.CmmnTaskService cmmnTaskService -
policyRepositoryService
-
platformSecurityInterceptor
@Autowired(required=false) protected com.flowable.core.spring.security.interceptor.PlatformSecurityInterceptor platformSecurityInterceptor -
additionalAdminUsers
@Value("${flowable.platform.idm.additional-admin-users:}") protected java.lang.String[] additionalAdminUsers -
permissionServiceRegistry
-
defaultSecurityPolicyKey
@Value("${flowable.policy.default-security-policy:basic-security-policy}") protected java.lang.String defaultSecurityPolicyKey -
defaultSecurityPolicyModel
-
inspectEnabled
@Value("${flowable.inspect.enabled:false}") protected boolean inspectEnabled
-
-
Constructor Details
-
AbstractPlatformSecurityService
public AbstractPlatformSecurityService()
-
-
Method Details
-
fetchCasePermissionMappings
protected java.util.List<java.lang.String> fetchCasePermissionMappings(org.flowable.cmmn.api.runtime.CaseInstance caseInstance, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) -
fetchCasePermissionMappings
protected java.util.List<java.lang.String> fetchCasePermissionMappings(java.lang.String caseInstanceId, java.lang.String startUserId, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, java.lang.String tenantId) -
fetchCaseSecurityPolicyModel
protected SecurityPolicyModel fetchCaseSecurityPolicyModel(org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, java.lang.String tenantId) -
fetchProcessPermissionMappings
protected java.util.List<java.lang.String> fetchProcessPermissionMappings(org.flowable.engine.runtime.ProcessInstance processInstance, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) -
fetchProcessPermissionMappings
protected java.util.List<java.lang.String> fetchProcessPermissionMappings(java.lang.String processInstanceId, java.lang.String startUserId, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.engine.repository.ProcessDefinition processDefinition, java.lang.String tenantId) -
fetchProcessSecurityPolicyModel
protected SecurityPolicyModel fetchProcessSecurityPolicyModel(org.flowable.engine.repository.ProcessDefinition processDefinition, java.lang.String tenantId) -
fetchTaskPermissionMappingsForProcess
protected java.util.List<java.lang.String> fetchTaskPermissionMappingsForProcess(java.lang.String taskDefinitionKey, java.lang.String processDefinitionId, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String tenantId) -
fetchTaskPermissionMappingsForCase
protected java.util.List<java.lang.String> fetchTaskPermissionMappingsForCase(java.lang.String taskDefinitionKey, java.lang.String caseDefinitionId, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String tenantId) -
fetchTaskSecurityPolicyModelForProcess
protected SecurityPolicyModel fetchTaskSecurityPolicyModelForProcess(java.lang.String taskDefinitionKey, java.lang.String processDefinitionId, java.lang.String tenantId) -
fetchSecurityPolicyModelForProcessInstance
protected SecurityPolicyModel fetchSecurityPolicyModelForProcessInstance(java.lang.String processInstanceId) -
fetchTaskSecurityPolicyModelForCase
protected SecurityPolicyModel fetchTaskSecurityPolicyModelForCase(java.lang.String taskDefinitionKey, java.lang.String caseDefinitionId, java.lang.String tenantId) -
fetchSecurityPolicyModelForCaseInstance
protected SecurityPolicyModel fetchSecurityPolicyModelForCaseInstance(java.lang.String caseInstanceId) -
fetchTaskPermissionMappings
protected java.util.List<java.lang.String> fetchTaskPermissionMappings(org.flowable.task.api.Task task, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) -
fetchTaskPermissionMappings
protected java.util.List<java.lang.String> fetchTaskPermissionMappings(java.lang.String taskId, java.lang.String taskDefinitionKey, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.engine.repository.ProcessDefinition processDefinition, java.lang.String tenantId) -
fetchTaskPermissionMappings
protected java.util.List<java.lang.String> fetchTaskPermissionMappings(java.lang.String taskId, java.lang.String taskDefinitionKey, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, java.lang.String tenantId) -
fetchPermissions
protected java.util.List<java.lang.String> fetchPermissions(SecurityPolicyModel securityPolicyModel, java.lang.String prefix, java.lang.String startUserId, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys) -
fetchPermissionsForTask
protected java.util.List<java.lang.String> fetchPermissionsForTask(SecurityPolicyModel securityPolicyModel, java.lang.String assignee, java.lang.String owner, java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys) -
hasAssigneeOrOwnerIdentityLink
protected boolean hasAssigneeOrOwnerIdentityLink(java.util.List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) -
filterPermissionsForRole
protected java.util.List<java.lang.String> filterPermissionsForRole(java.lang.String role, java.lang.String prefix, SecurityPolicyModel securityPolicyModel) -
fetchSecurityPolicyModel
protected SecurityPolicyModel fetchSecurityPolicyModel(org.flowable.cmmn.model.Case caze, java.lang.String tenantId) -
fetchSecurityPolicyModel
protected SecurityPolicyModel fetchSecurityPolicyModel(org.flowable.bpmn.model.Process process, java.lang.String tenantId) -
fetchSecurityPolicyModelForTask
protected SecurityPolicyModel fetchSecurityPolicyModelForTask(org.flowable.bpmn.model.FlowElement flowElement, org.flowable.bpmn.model.Process process, java.lang.String tenantId) -
fetchSecurityPolicyModelForTask
protected SecurityPolicyModel fetchSecurityPolicyModelForTask(org.flowable.cmmn.model.PlanItemDefinition planItemDefinition, org.flowable.cmmn.model.Case caze, java.lang.String tenantId) -
getCurrentGroupKeys
protected java.util.Set<java.lang.String> getCurrentGroupKeys() -
getCurrentUserId
protected java.lang.String getCurrentUserId() -
getCurrentTenantId
protected java.lang.String getCurrentTenantId() -
currentUserHasAdminRights
protected boolean currentUserHasAdminRights() -
currentUserIsSuperAdmin
protected boolean currentUserIsSuperAdmin() -
groupOrUserMatches
protected boolean groupOrUserMatches(org.flowable.identitylink.api.IdentityLinkInfo identityLink, java.lang.String userId, java.util.Set<java.lang.String> groupKeys) -
groupOrUserMatches
protected boolean groupOrUserMatches(java.lang.String identityLinkUser, java.lang.String identityLinkGroup, java.lang.String userId, java.util.Set<java.lang.String> groupKeys) -
hasAnyMatchingIdentityLink
protected boolean hasAnyMatchingIdentityLink(java.util.Collection<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys) -
hasPermissionForEntityLinks
protected boolean hasPermissionForEntityLinks(java.lang.String permission, java.util.List<org.flowable.entitylink.api.EntityLink> entityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys, java.lang.String tenantId) -
hasPermissionForHistoricEntityLinks
protected boolean hasPermissionForHistoricEntityLinks(java.lang.String permission, java.util.List<org.flowable.entitylink.api.history.HistoricEntityLink> entityLinks, java.lang.String userId, java.util.Set<java.lang.String> groupKeys, java.lang.String tenantId) -
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(java.lang.String securityPolicyModelKey, java.lang.String tenantId) -
getDefaultSecurityPolicyModel
-
getCmmnExtensionElementValue
protected java.lang.String getCmmnExtensionElementValue(java.lang.String name, java.util.Map<java.lang.String,java.util.List<org.flowable.cmmn.model.ExtensionElement>> extensionElements) -
getExtensionElementValue
protected java.lang.String getExtensionElementValue(java.lang.String name, java.util.Map<java.lang.String,java.util.List<org.flowable.bpmn.model.ExtensionElement>> extensionElements) -
translatePermissionForScope
protected java.lang.String translatePermissionForScope(java.lang.String permission, java.lang.String scopeType)
-